javascript - 根据视口(viewport)宽度(vw)制作圆半径

标签 javascript jquery math gsap

我有一个免费的 jQuery 图片库,我正在尝试对其进行一些修改以使其适合我的项目。

图库是一个带有图像的旋转圆圈。

圆的半径是这样定义的:

radius = Math.round( (250) / Math.tan( Math.PI / itemLength ) ); 

但是我需要的是根据视口(viewport)宽度(vw)制作一个新的半径

谁能帮我正确处理这个问题?

另外,如果有人能帮助我理解上面代码中发生的事情,我将不胜感激。

这是该行代码的上下文:

w = $(window);
container = $( '#contentContainer' );
carousel = $( '#carouselContainer' );
item = $( '.carouselItem' );
itemLength = $( '.carouselItem' ).length;
fps = $('#fps');
rY = 360 / itemLength;
radius = Math.round( (250) / Math.tan( Math.PI / itemLength ) );

https://jsfiddle.net/mxp5svjx/

这里是要求的图片:

enter image description here

主要问题是当我调整窗口大小时圆的半径保持不变。

这是一个工作演示: http://codepen.io/johnblazek/full/nceyw/

最佳答案

我可能是错的,但我认为

Math.tan( Math.PI / itemLength )

是计算每段的 Angular ,itemLength的值越大, Angular 越小。所有项目都需要适合圆圈。 tan 函数根据 Angular 值生成一个值。

然后 250 除以前一个结果。 我想用 vw 交换 250 会导致值过高。 如果您知道它看起来不错的 View 宽度,那么您可以尝试类似的方法:

radius = Math.round( (250 * (vw/default_vw) ) / Math.tan( Math.PI / itemLength ) ); 

关于javascript - 根据视口(viewport)宽度(vw)制作圆半径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34265659/

相关文章:

php - PHP 哈希函数(包括盐和原始输出)的 Node.js 等价物是什么?

jquery - 点击事件不会在内部 div 上触发

javascript - 正则表达式: transferring the data attribute

java - 在没有给定数字集的情况下,找到所有可能的数字组合以达到给定的总和(Java)

python - 线路安排问题。 (有人可以提出一个更省时的解决方案吗?)

javascript - 在使用 JSON 创建的游戏中添加多个级别

javascript - JS删除最后一次出现的字符后的所有内容

javascript - jQuery - 如何在动画中进行数学运算

jquery - 带有输入类型文本的日期输入字段 DD/MM/YYYY

java - 对于 Java 中的按位运算,我是否需要关心 Java 中的大多数数字类型是否已签名?