简体   繁体   English

幻灯片功能和 Internet Explorer 11

[英]Slide feature and internet explorer 11

I'm working on slide feature in my project and I've run into problem on IE 11 that I am having real hard time solving.我正在我的项目中处理幻灯片功能,我在 IE 11 上遇到了问题,我真的很难解决。 Everything works fine on chrome, mozilla and edge.在 chrome、mozilla 和 edge 上一切正常。

One of the first things that I thought was causing issues is lack CSS prefixes, but after adding them code still didn't work in IE.我认为导致问题的第一件事是缺少 CSS 前缀,但添加它们后,代码在 IE 中仍然无法正常工作。 I have also checked IE 11 support for CSS properties I'm using on caniuse website and all properties are supported on IE 11. As far JQ code goes It's pretty straightforward I'm not doing anything special just adding and removing some classes.我还检查了 IE 11 对我在caniuse网站上使用的 CSS 属性的支持,并且 IE 11 支持所有属性。就 JQ 代码而言,这非常简单,我没有做任何特别的事情,只是添加和删除一些类。

Does anyone have idea what might be causing problems and can point me in right direction.有没有人知道可能导致问题的原因,并可以为我指明正确的方向。

This is my code:这是我的代码:

 $('#openClose').on('click', function(e) { e.preventDefault(); if ($('.advanced_search').hasClass('dismiss')) { $('.advanced_search').removeClass('dismiss').addClass('selected').show(); } else { $('.advanced_search').removeClass('selected').addClass('dismiss'); } })
 html, body { overflow: hidden; max-width: 100% } .advanced_search { position: absolute; top: 0; right: 0; width: 300px; display: none; height: 100%; overflow: hidden; background: #107b10; z-index: 999; -ms-transform: translateX(100%); transform: translateX(100%); -webkit-transform: translateX(100%); } .selected { animation: slide-in 0.5s forwards; -webkit-animation: slide-in 0.5s forwards; } .dismiss { animation: slide-out 0.5s forwards; -webkit-animation: slide-out 0.5s forwards; } @keyframes slide-in { 0% { -webkit-transform: translateX(100%); } 100% { -webkit-transform: translateX(0%); } } @-webkit-keyframes slide-in { 0% { -webkit-transform: translateX(100%); transform: translateX(100%); } 100% { -webkit-transform: translateX(0%); transform: translateX(0%); } } @keyframes slide-out { 0% { -webkit-transform: translateX(0%); transform: translateX(0%); } 100% { -webkit-transform: translateX(100%); transform: translateX(100%); } } @-webkit-keyframes slide-out { 0% { -webkit-transform: translateX(0%); } 100% { -webkit-transform: translateX(100%); } }
 <script src="https://code.jquery.com/jquery-3.1.0.js"></script> <div class="advanced_search dismiss"> <span> Lorem ipsum dolor sit amet, consectetur adipisicing elit. Praesentium, quaerat! </span> </div> <a id="openClose">Open/Close</a>

Also here is JSBin with my code so you can quickly do tests: https://jsbin.com/hufodetexa/edit?html,css,js,output这里还有 JSBin 和我的代码,所以你可以快速进行测试: https ://jsbin.com/hufodetexa/edit?html,css,js,output

I just added the missing -ms and one missing transform and it works on my ie 11我刚刚添加了缺少的 -ms 和一个缺少的转换,它适用于我的 ie 11

 $('#openClose').on('click', function(e) { e.preventDefault(); if ($('.advanced_search').hasClass('dismiss')) { $('.advanced_search').removeClass('dismiss').addClass('selected').show(); } else { $('.advanced_search').removeClass('selected').addClass('dismiss'); } })
 html, body { overflow: hidden; max-width: 100% } .advanced_search { position: absolute; top: 0; right: 0; width: 300px; display: none; height: 100%; overflow: hidden; background: #107b10; z-index: 999; -ms-transform: translateX(100%); -webkit-transform: translateX(100%); transform: translateX(100%); } .selected { -ms-animation: slide-in 0.5s forwards; -webkit-animation: slide-in 0.5s forwards; animation: slide-in 0.5s forwards; } .dismiss { -webkit-animation: slide-out 0.5s forwards; -ms-animation: slide-out 0.5s forwards; animation: slide-out 0.5s forwards; } @keyframes slide-in { 0% { -webkit-transform: translateX(100%); -ms-transform: translateX(100%); transform: translateX(100%); } 100% { -webkit-transform: translateX(0%); -ms-transform: translateX(0%); -transform: translateX(0%); } } @-webkit-keyframes slide-in { 0% { -webkit-transform: translateX(100%); transform: translateX(100%); } 100% { -webkit-transform: translateX(0%); transform: translateX(0%); } } @keyframes slide-out { 0% { -webkit-transform: translateX(0%); -ms-transform: translateX(0%); transform: translateX(0%); } 100% { -webkit-transform: translateX(100%); -ms-transform: translateX(100%); transform: translateX(100%); } } @-webkit-keyframes slide-out { 0% { -webkit-transform: translateX(0%); } 100% { -webkit-transform: translateX(100%); } }
 <script src="https://code.jquery.com/jquery-3.1.0.js"></script> <div class="advanced_search dismiss"> <span> Lorem ipsum dolor sit amet, consectetur adipisicing elit. Praesentium, quaerat! </span> </div> <a id="openClose">Open/Close</a>

CodeHacker solved your problem very well, so I try to give you a more simple approch to the problem, just so you know: what about use a transition and only one class? CodeHacker 很好地解决了你的问题,所以我试着给你一个更简单的方法来解决这个问题,只是让你知道:使用过渡和只有一个类怎么样?

Only a second point of view.只有第二种观点。 Give it a try, if you want, works well also with IE11.如果您愿意,可以尝试一下,它也适用于 IE11。 ;-) ;-)

 $('#openClose').on('click', function(e) { e.preventDefault(); $('.advanced_search').toggleClass("selected") })
 html, body { overflow: hidden; max-width: 100% } .advanced_search { position: absolute; top: 0; right: 0; transform:translateX(100%); width: 300px; height: 100%; background-color: green; transition: transform 0.5s ease-out; } .selected { transform:translateX(0); }
 <script src="https://code.jquery.com/jquery-3.1.0.js"></script> <div class="advanced_search"> <span> Lorem ipsum dolor sit amet, consectetur adipisicing elit. Praesentium, quaerat! </span> </div> <a id="openClose">Open/Close</a>

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

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