javascript - 这种计时器上下拉动选择数字怎么实现的
ringa_lee
ringa_lee 2017-04-10 17:51:34
[JavaScript讨论组]

小时的数字选择到0的时候上面已经没有数字可以选择了,但是分钟不一样,还可以往上选从59开始循环,这是怎么实现的,并且数字转动到框里面样式发生改变,是怎么确定该数字转到了框里的。

ringa_lee
ringa_lee

ringa_lee

全部回复(3)
PHPz

写一下思路,首先:使用p+CSS+JS实现,不能用select;

数字是使用transform3d做的变形效果;

分钟滚动的动画效果由JS捕捉用户行为判断滑动距离,添加css动画transition配合transformY轴位移实现;
从0向上滚动到59需要复制一个组出来→ 查看DEMO
DEMO里设定每分钟的高度是14px,初始化时的值translate3d(0,-112px,0);
这样一上来焦点就在0这个位置了,若想知道用户滚动的值是多少
就根据translate3d(0,-112px,0)的值/14(每分钟行的高度) 计算滑动到了第几个值
比如demo第一行是8 ,8*14 = 112

天蓬老师

用js实现吗?是可以的,你用css3的变形属性,例如 transform 等,配合滚动

PHPz

3d效果,使用rotate3d与transform3d做出来,可参考这篇文章:
好吧,CSS3 3D transform变换,不过如此!

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号