2017-06-19 40 views
0

我想從這個codepen重新作出的iOS 7風格的模糊標題:格Mozilla的鼠標滾輪滾動的模糊效果的內容

https://codepen.io/rikschennink/pen/zvcgx   //code bellow 

一切工作在Safari和Chrome(和罰款,whitch出乎我的意料,在Android和iOS設備)。 但在Firefox中,鼠標滾輪不起作用。滾動通過滾動條工作,但不通過鼠標滾輪。

這個問題不只是我的結果(http://www.letsmind.cz)出現,而且在原來的CodePen渲染。

我想這是造成與隱藏溢出的東西,但我不明白它如何能在Safari瀏覽器等方面的工作,但不只是在一個Mozilla。

感謝的您的時間和答案,如果你能看着辦吧! :)

編輯:觸摸屏滾動是好的,即使在Mozilla的whitch真的很奇怪的事實,因爲它是鼠標滾輪事件,不是嗎?

HTML:

<div class="screen"> 

     <header> 

      <div class="contOfHeader"> 

       <img src=""> 
       <ul> 
        <li>Vývoj</li> 
        <li>Grafika</li> 
        <li>Animace</li> 
        <li>Kreativní služby</li> 
        <li>Kontakt</li> 
       </ul> 

      </div> 

     </header> 

     <div class="content-wrapper"> 
      <div class="content"> 
       <ol class="messages"> 

        <li> 

         <div class="slider"> 
         </div> 

         <p>Praesent porttitor nisl vel enim consectetur, vitae dictum ipsum condimentum.Praesent porttitor nisl vel enim consectetur, vitae dictum ipsum condimentum.</p> 

        </li> 
       </ol> 
      </div> 
     </div> 
    </div> 
</div> 

LESS:

::-webkit-scrollbar { 
    display: none; 
} 

html { 
    font-family:"Helvetica Neue","Helvetica",sans-serif; 
    font-size:1rem; 
} 

html,body { 
    margin:0; 
    padding:0; 
    background:#fff; 
    overflow:hidden; 
} 

.screen { 
    position:absolute; 
    width:100%; 
    height:100%; 
    overflow:hidden; 
} 

header { 
    position:absolute; 
    left:0; 
    top:0; 
    right:0; 
    height:55px; 
    overflow:hidden; 
    background:#dedede; 
    z-index:2; 
    //box-shadow:0 1px 0 rgba(0,0,0,.1),0 1px 2px rgba(0,0,0,.1); 

    .contOfHeader{ 
     position: relative; 
     font-weight:normal; 
     font-size:1rem; 
     margin:0; 
     padding:0; 
     line-height:55px; 
     text-align:center; 
     z-index: 2; 
     font-weight:100; 
     font-size: 17px; 

     img{ 
      display: inline-block; 
     } 
     ul{ 
      display: inline-block; 
      li{ 
       display: inline-block; 
       padding-left: 70px; 
      } 
     } 
    } 
} 

.content-blurred { 
    //margin-top:45px; 
    //padding:0 1rem; 
    position:absolute; 
    top:0; 
    left:0; 
    right:0; 
    filter:blur(7px); 
    opacity:.5; 
    z-index: 1; 
} 

.content-blurred .content { 
    backface-visibility:hidden; 
} 

.content-wrapper { 
    position:relative; 
    //padding:0 1rem; 
    z-index:1; 
    height:100%; 
    overflow:auto; 
} 

.content-wrapper .content { 
    //margin-top:44px; 
} 

.content { 
    display:block; 
} 

.messages { 
    margin:0; 
    padding:0; 
} 

.messages li { 

} 

.messages li:nth-child(even) { 
    float:right; 
} 

.messages li:nth-child(even) img { 
    float:right; 
} 

.messages li:nth-child(even) p { 
    background:#158ffe; 
    color:#fff; 
} 

.messages img { 

} 

JS:

var content = document.querySelector('.content'); 
    var duplicate = content.cloneNode(true); 
    var contentBlurred = document.createElement('div'); 
    contentBlurred.className = 'content-blurred'; 
    contentBlurred.appendChild(duplicate); 

    var header = document.querySelector('header'); 
    header.appendChild(contentBlurred); 

    var contentWrapper = document.querySelector('.content-wrapper'), 
    translation; 

    contentWrapper.addEventListener('scroll',function(){ 
     translation = 'translate3d(0,' + (-this.scrollTop + 'px') + ',0)'; 
     duplicate.style['-webkit-transform'] = translation; 
     duplicate.style['-moz-transform'] = translation; 
     duplicate.style['-ms-transform'] = translation; 
     duplicate.style['transform'] = translation; 

     console.log(duplicate); 
    }); 

回答

0

我設法與最大的財富解決這個問題,通過增加這個JavaScript到我的代碼:

var isMouseScroll = false; 

window.addEventListener('wheel',function(e) 
{ 
    console.log('mouse wheel'); 
    isMouseScroll = true; 
}); 

window.addEventListener('scroll',function(e) 
{ 
    if(!isMouseScroll) { 
    console.log('scroll'); 
    } 

    isMouseScroll = false; 
}); 

它莫名其妙地「解鎖」鼠標滾輪。不知道爲什麼,不知道如何,但它有效。

而在Firefox中的問題是(我認爲),當HTML,體{overflow:hidden;},然後當你允許滾動div內,它不會觸發滾動鼠標(但滾動條和觸摸板工作正常)。

感謝的您的時間,還是它的竊聽,但我知道如何規避它。