360 度图像旋转指示器
Indicator for a 360 image rotation
我有一个简单的360图像旋转器,它可以循环浏览一系列图像以创建旋转对象的效果。我想添加一个指示器,向用户显示您可以旋转在拳头图像过去后淡出的对象。所以我在360.js
末尾添加了这个函数
(function(){
if(
$('#first').css('visibility','hidden')) {
$('#rotate').fadeOut();
}
else {
$('#rotate').fadeIn();
}
});
脚本中没有错误,只是没有检查图像是否可见。我尝试将其绑定到我的360.js
中调用的鼠标按下和鼠标移动事件,但没有运气。有人对如何解决这个问题有任何想法吗?
这是一个小提琴
除了我在评论中列出的内容之外,还有一个主要问题。
您将 currentImage 设置为 1,而不是 0,并且索引从 0 开始。 因此,您想要的图像再也看不到,因此褪色永远不会发生。
我还检查它是否具有"notseen"类,尽管检查隐藏应该同样好。
这是我的最新修复程序,您应该看到它通常有效:http://jsfiddle.net/y7WmA/6/
以下是重要的片段:
.bind('mousemove touchmove', function (e) {
fadeInOut();
// ...
if (Math.abs(currPos - pageX) >= widthStep) {
if (currPos - pageX >= widthStep) {
currImg++;
if (currImg > imageTotal) {
currImg = 0;
}
} else {
currImg--;
if (currImg < 0) {
currImg = imageTotal;
}
}
// ...
function fadeInOut() {
if ($('#first').hasClass('notseen')) {
console.log("hidden");
$('#rotate').fadeOut();
} else {
console.log("visible");
$('#rotate').fadeIn();
}
};
JSFiddle的一个棘手问题是它放置脚本的位置。您的脚本似乎难以将事件绑定到 DOM,因为 JSFiddle 在页面加载时立即加载它。这可能与您在当地的经历有关,也可能无关。
尽管如此,我还是在这里稍微修改了你的JSFiddle:JSFiddle。请注意,我添加了一个 firstMove 布尔值,然后启用或禁用以下脚本:
if (!firstMove) {
$('#rotate').fadeOut()
firstMove = true;
}
占位符在第一次移动后立即淡出。最终,我想找到一种方法来避免使用布尔跟踪器,但这应该会让你朝着正确的方向前进!
编辑:另请注意,每次图像上发生移动时,当前版本都会执行评估,这可能代价高昂,尤其是在使用 jQuery 选择器时。
相关文章:
- 知道为什么我的旋转木马不会自动更改图片吗
- 顺时针旋转Svg元件
- 将鼠标旋转限制为特定的度数
- 旋转后拖动对象
- 禁用旋转木马中的下一个按钮和上一个按钮
- 手动创建旋转活动指示器
- 如何在容器中定位旋转的图像
- 在轴上旋转SVG图像
- 绕z轴旋转时出现iOS陀螺仪错误
- 旋转按钮[HTML][JS]
- 360 度图像旋转指示器
- 如何在不同线路上获得BS旋转木马指示器
- x-editable-botstrap select2标签-装载指示器永远旋转
- 浏览器加载指示器从未停止旋转IE10
- 浏览器在运行使用json的ajax函数后继续加载(加载指示器一直在旋转)
- 多个旋转木马指示器引导旋转木马
- 引导旋转木马指示器的位置目前与旋转木马内容重叠
- 向旋转木马添加指示器
- 旋转指示器在IE中不起作用
- 横幅旋转器的动态旋转指示器