2014-02-14 159 views
1

不幸的是,我不是一個jQuery大師,我試圖在媒體上重新創建圖像淡入淡出/模糊效果。這裏是一個例子 - https://medium.com/matter/76d9913c6011重新創建媒體的圖像淡入淡出效果

如果你向下滾動頁面,你會注意到一些圖像,隨着你的滾動逐漸淡入/淡出。在檢查代碼時,我注意到有兩個版本的圖像來創建效果,一個是常規版本,另一個是模糊的。

據我所知,事情是設置這樣的:

<section class= 
"section-bottom-center section-image-full section-using-canvas" 
data-scroll="native"> 
    <div class="section-background" data-height="2130" data-image-id= 
    "1*ladXngaMeWEqp1R18uSSQA.jpeg" data-scroll="post-section" data-width= 
    "3200"> 
     <div class="section-background-image" style= 
     "background-image: url(https://d262ilb51hltx0.cloudfront.net/max/700/gradv/29/81/40/1*ladXngaMeWEqp1R18uSSQA.jpeg);"> 
     </div><br> 
    </div> 

    <div class="section-inner layout-single-column"> 
     <p>SOME TEXT THAT FADES OVER THE IMAGE</p> 
    </div> 
</section> 

我發現一些jQuery的,可惜我實在不明白它說好了,所以我不能重新創建它。

var qm = function(a, b) { 
    var c = '\x3cdiv class\x3d"section-background' + (a.hasFocus ? " media-has-focus" : "") + '"' + ("section-image-full" == a.imageLayout ? ' data-scroll\x3d"post-section"' : "") + 'data-image-id\x3d"' + (0,z.N)(a.backgroundImage.id) + '"', d; 
    d = a.backgroundImage; 
    d = (d.originalWidth ? ' data-width\x3d"' + (0,z.N)(d.originalWidth) + '"' : "") + (d.originalHeight ? ' data-height\x3d"' + (0,z.N)(d.originalHeight) + '"' : "") + (d.filter ? ' data-filter\x3d"' + (0,z.N)(d.filter) + '"' : "") + (d.backgroundSize ? ' data-image-style\x3d"' + (0,z.N)(d.backgroundSize) + '"' : ""); 
    c = c + d + "\x3e"; 
    c = "section-image-full" == a.imageLayout ? c + ('\x3cdiv class\x3d"section-background-image" style\x3d"background-image: url(' + (0,z.N)((0,z.P)(b.miroUrl)) + "/max/" + (0,z.N)("700".replace(ji, ki)) + "/gradv/29/81/40/" + (0,z.N)(String(a.backgroundImage.id).replace(ji, ki)) + ');"\x3e\x3c/div\x3e\x3cbr\x3e') : "section-image-left" == a.imageLayout || "section-image-right" == a.imageLayout ? c + ('\x3cimg src\x3d"' + (0,z.N)((0,z.P)(b.miroUrl)) + "/max/" + (0,z.N)(b.postColumnWidth) + "/multiply/grey/" + 
    (0,z.N)(a.backgroundImage.id) + '"\x3e') : c + "\x3cbr\x3e"; 
    return c + "\x3c/div\x3e"; 
}; 

有一件事我沒有通知,是不是在這兩個圖像簡單地淡入/淡出 - 衰落水平在某種程度上必然要滾動,所以當你停止滾動的圖像停止褪色。這是一個非常好的效果。

P.S我希望儘可能簡單地做到這一點,最好不使用jQuery插件。

謝謝

回答

0

我也想弄清楚他們是如何管理這在中等。 您指出的縮小的JavaScript代碼段似乎並不是我對造成模糊效果的責任。在我看來,他們也通過畫布進行處理。 看看這個蘇答案:

Coderwall blurred background effect with canvas

希望幫助。 (不幸的是這使用了一些jQuery,但你可以跳過那部分;))

1

檢查出安德烈亞斯風暴的中模糊滾動效果Codepen

HTML:

<div class='blurImg'> 
    <div style="background-image: url('https://d262ilb51hltx0.cloudfront.net/fit/c/1600/1280/gradv/29/81/60/darken/25/1*4ncz3hLxmL8E_bUh-0z62w.jpeg')"></div> 
    <div class='blur' style="background-image: url('https://d262ilb51hltx0.cloudfront.net/fit/c/1600/1280/gradv/29/81/40/darken/50/blur/50/1*4ncz3hLxmL8E_bUh-0z62w.jpeg')"></div> 
</div> 
<header> 
    <div> 
    <h1> 
     Medium 
    </h1> 
    <p> 
     Everyone’s stories and ideas 
    </p> 
    <a href='https://medium.com/' title='Medium'>Learn more</a> 
    </div> 
    <nav role='navigation'> 
    <ul> 
     <li> 
     <a class='active' href='#'>Reading List</a> 
     </li> 
     <li> 
     <a href='#'>Bookmarks</a> 
     </li> 
     <li> 
     <a href='#'>Top 100</a> 
     </li> 
    </ul> 
    </nav> 
</header> 
<div class='container'> 
    <div></div> 
</div> 

CSS:

body 
    font-size 14px 
    font-family Sans-Serif 

* 
    box-sizing border-box 

a 
    text-decoration none 

.blurImg 
    position relative 
    width 100% 
    height 440px 
    z-index -1 
    top 0 
    left 0 
    & > div 
    position fixed 
    width 100% 
    height 440px 
    background-repeat no-repeat 
    background-size cover 
    background-position center center 

.blur 
    opacity 0 

header 
    z-index 1 
    position absolute 
    top 0 
    width 100% 
    padding 0px 20px 
    & > div 
    max-width 600px 
    margin 0 auto 
    padding-top 150px 
    height 380px 
    text-align center 
    color White 
    a 
     font-size 0.8em 
     letter-spacing 0.08em 
     color rgba(255,255,255,0.85) 
     line-height 30px 
     padding 7px 14px 
     border 1px solid rgba(255,255,255,0.3) 
     border-radius 2em 
     transition all 0.3s ease 
     &:hover 
     background white 
     color Gray 
    p 
    font-size 1.5em 
    margin-bottom 0.7em 
    font-family Times New Roman 

h1 
    font-weight 800 
    font-size 3.4em 
    margin-bottom 0.2em 

nav 
    max-width 600px 
    margin 0 auto 
    height 60px 
    border-top 1px rgba(255,255,255,0.35) solid 
    ul 
    li 
     display inline-block 
     margin-right 20px 
     a 
     font-weight 800 
     font-size 11px 
     text-transform uppercase 
     letter-spacing .2em 
     color rgba(255,255,255,0.5) 
     transition color 0.3s linear 
     line-height 60px 
     display block 
     &.active 
      box-shadow 0px -1px 0px white 

nav ul li a.active, nav ul li a:hover 
    color white 

.container 
    height 1300px 
    background white 
    z-index 1 
    padding 0px 20px 
    div 
    max-width 600px 
    margin 0 auto 
    padding-top 40px 

的CoffeeScript:

$(window).scroll -> 
    oVal = ($(window).scrollTop()/240) 
    $(".blur").css "opacity", oVal