简体   繁体   English

为什么滑块适用于桌面而不适用于移动设备?

[英]Why does slider work on desktop but NOT on mobile?

the slider feature seems to stop working on tablet and mobile devices but works fine on desktop. 滑块功能似乎无法在平板电脑和移动设备上使用,但在台式机上可以正常使用。 I'm unsure how to troubleshoot this feature. 我不确定如何解决此功能。

Do I need to add "touch" for mobile devices? 我需要为移动设备添加“触摸”吗? If so, what is the best way to add this? 如果是这样,添加此内容的最佳方法是什么?

I've tested it on all browsers and the the feature seems to get disabled when viewed in mobile view. 我已经在所有浏览器上测试了它,并且在移动视图中查看时该功能似乎被禁用。

 img { max-width: 100%; } /* -------------------------------- Main components -------------------------------- */ .cd-image-container { position: relative; width: 100%; margin: 0em auto; } .cd-image-container img { display: block; } .cd-image-label { position: absolute; top: 0; right: 0; color: #000000; padding: 5px 10px; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; opacity: 0; -webkit-transform: translateY(20px); -moz-transform: translateY(20px); -ms-transform: translateY(20px); -o-transform: translateY(20px); transform: translateY(20px); -webkit-transition: -webkit-transform 0.3s 0.7s, opacity 0.3s 0.7s; -moz-transition: -moz-transform 0.3s 0.7s, opacity 0.3s 0.7s; transition: transform 0.3s 0.7s, opacity 0.3s 0.7s; } .cd-image-label.is-hidden { visibility: hidden; } .is-visible .cd-image-label { opacity: 1; -webkit-transform: translateY(0); -moz-transform: translateY(0); -ms-transform: translateY(0); -o-transform: translateY(0); transform: translateY(0); } .cd-resize-img { position: absolute; top: 0; left: 0; width: 0; height: 100%; overflow: hidden; /* Force Hardware Acceleration in WebKit */ -webkit-transform: translateZ(0); -moz-transform: translateZ(0); -ms-transform: translateZ(0); -o-transform: translateZ(0); transform: translateZ(0); -webkit-backface-visibility: hidden; backface-visibility: hidden; border-right:solid 1px #dedede; } .cd-resize-img img { position: absolute; left: 0; top: 0; display: block; height: 100%; width: auto; max-width: none; } .cd-resize-img .cd-image-label { right: auto; left: 0; } .is-visible .cd-resize-img { width: 50%; /* bounce in animation of the modified image */ -webkit-animation: cd-bounce-in 0.7s; -moz-animation: cd-bounce-in 0.7s; animation: cd-bounce-in 0.7s; } @-webkit-keyframes cd-bounce-in { 0% { width: 0; } 60% { width: 55%; } 100% { width: 50%; } } @-moz-keyframes cd-bounce-in { 0% { width: 0; } 60% { width: 55%; } 100% { width: 50%; } } @keyframes cd-bounce-in { 0% { width: 0; } 60% { width: 55%; } 100% { width: 50%; } } .cd-handle { position: absolute; height: 22px; width: 44px; /* center the element */ left: 50%; top: 55%; margin-left: -22px; margin-top: -22px; background: #000000 url("https://images.clickfunnels.com/09/a714400d3211e7a0bd7d7140585054/cd-arrows.svg") no-repeat center center; cursor: move; box-shadow: 0 0 0 6px rgba(0, 0, 0, 0.2), 0 0 10px rgba(0, 0, 0, 0.6), inset 0 1px 0 rgba(255, 255, 255, 0.3); opacity: 0; -webkit-transform: translate3d(0, 0, 0) scale(0); -moz-transform: translate3d(0, 0, 0) scale(0); -ms-transform: translate3d(0, 0, 0) scale(0); -o-transform: translate3d(0, 0, 0) scale(0); transform: translate3d(0, 0, 0) scale(0); z-index:300; } .cd-handle.draggable { /* change background color when element is active */ background-color: #3a3a3a; } .is-visible .cd-handle { opacity: 1; -webkit-transform: translate3d(0, 0, 0) scale(1); -moz-transform: translate3d(0, 0, 0) scale(1); -ms-transform: translate3d(0, 0, 0) scale(1); -o-transform: translate3d(0, 0, 0) scale(1); transform: translate3d(0, 0, 0) scale(1); -webkit-transition: -webkit-transform 0.3s 0.7s, opacity 0s 0.7s; -moz-transition: -moz-transform 0.3s 0.7s, opacity 0s 0.7s; transition: transform 0.3s 0.7s, opacity 0s 0.7s; } 
  <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script> <script src="https://s3-us-west-2.amazonaws.com/guruscriptz/image-comparison.js"></script> <figure class="cd-image-container"> <img src="https://s3.us-east-2.amazonaws.com/audi-email-assets/damage-slider-assets/Exteroir_Unacceptable.jpg" alt="Original Image"> <span class="cd-image-label" data-type="original"><?php echo $data['lang']['unacceptable']?></span> <div class="cd-resize-img"> <!-- the resizable image on top --> <img src="https://s3.us-east-2.amazonaws.com/audi-email-assets/damage-slider-assets/Exteroir_Acceptable.jpg" alt="Modified Image"> <span class="cd-image-label" data-type="modified"><?php echo $data['lang']['acceptable']?></span> </div> <span class="cd-handle"></span> </figure> 

I viewed your event handling via this url: https://s3-us-west-2.amazonaws.com/guruscriptz/image-comparison.js 我通过以下URL查看了您的事件处理: https : //s3-us-west-2.amazonaws.com/guruscriptz/image-comparison.js

It appears that you are missing mobile events. 您似乎缺少移动活动。 You need touchstart, touchend, touchmove, and touchcancel events in addition to mouse-related events. 除鼠标相关事件外,还需要touchstart,touchend,touchmove和touchcancel事件。 This will allow non-mouse-based clicks to move the slider. 这将允许非基于鼠标的单击来移动滑块。

For example: 例如:

ragElement.parents().on("mousemove vmousemove"

should be 应该

ragElement.parents().on("mousemove vmousemove touchmove"

etc. 等等

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM