在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML5/ canvas的圖片隨著窗口向下滾動縮放

canvas的圖片隨著窗口向下滾動縮放

canvas圖片實現(xiàn)自適應(yīng)


$('.container').prepend(canvas);
// 創(chuàng)建圖片
let src = $(".image-hero-swimmer").css("background-image").split("\"")[1];
console.log(src,'src');

let imageObj = new Image();
imageObj.src = src;
imageObj.addEventListener('load', () => {
    canvas.style.width = window.innerWidth+'px';
    canvas.style.height = window.innerHeight+'px';
    canvas.width  = window.innerWidth;
    canvas.height = window.innerHeight;
    ctx.drawImage(imageObj, 0, 0,window.innerWidth,window.innerHeight);

  })
  // 調(diào)整窗口重新畫圖
  $(window).resize(resizeCanvas);
  function resizeCanvas() {
    draw_canvas_image();
};

canvas圖片向下滾動縮放


function draw_canvas_image(h,direct) {
    let src = $(".image-hero-swimmer").css("background-image").split("\"")[1];
    let imageObj = new Image();
    imageObj.src = src;
    canvas.style.width =  window.innerWidth+'px';
    canvas.style.height =  window.innerHeight+'px';
    if(direct =='down'){
        var h = --window.innerHeight;
        var nWidth= parseInt(canvas.style.width);
        var nHeight= parseInt(canvas.style.height);
        canvas.style.height = h+'px';
    }
    if(direct == 'up') {
        var h = ++window.innerHeight;
        var nWidth= parseInt(canvas.style.width);
        var nHeight= parseInt(canvas.style.height);
        // canvas.style.width = w+'px';
        canvas.style.height = h+'px';
        if( nHeight > window.innerHeight){
            canvas.style.height = window.innerHeight+'px';
        }
    }
    canvas.width  = window.innerWidth;
    canvas.height = window.innerHeight;
    ctx.drawImage(imageObj, 0, 0,window.innerWidth,window.innerHeight);

}

現(xiàn)在的縮放效果很差,參考了這個https://www.apple.com/apple-w... 他的canvas實現(xiàn)是沒有改變寬高,想請教下有這種向下滾動縮放canvas是用的什么方式

回答
編輯回答
菊外人

apple-watch-series這個canvas窗口滾動縮放實現(xiàn)難度太大,放棄了

2018年2月20日 01:13
編輯回答
瘋浪

向下滾動窗口大小不變啊,window.innerWidth,window.innerHeight不變,
增加滾動監(jiān)聽:
document.addEventListener('scroll',winScroll,false);

通過winScroll函數(shù),根據(jù)window.scrollY來處理canvas的大小。

其實用background-size控制更簡單。。。。

2018年8月2日 05:17