課程
/前端開發
/CSS3
/CSS3絢麗照片墻
上一節照片墻 ?
個人認為 如果每張照片設置 ?角度 和 位置 未免 太繁瑣 能不能 用 ?js ?實現 ?
有人做出來的話希望 分享一下代碼
2016-11-12
源自:CSS3絢麗照片墻 1-5
正在回答
思路:獲取container的高寬,根據這個控制Math.random()的值作用與每張圖片的top、left值,再隨機設置個rotate的值
修改一下:
var?tempX?=??5;
var?tempY?=2;
var blockWidth = cWidth / tempX;
?pics[i].style.left = blockWidth*Math.random()/2 + blockWidth*jx + "px";
如果要使用:
?var?tempX?=??Math.ceil(cWidth?/?pics[0].offsetWidth);
也可以得注意控制image的寬度
window.onload?=?function??()?{ var?pics?=?document.getElementsByClassName("pic"); var?len?=?pics.length; var?container?=?document.getElementsByClassName("container")[0]; var?cWidth?=?container.offsetWidth; console.log(cWidth); var?cHeight?=?container.offsetHeight; var?temp;//角度偏差 var?tempX?=??Math.ceil(cWidth?/?pics[0].offsetWidth); var?tempY?=Math.ceil(?cHeight?/??pics[0].offsetHeight); console.log(tempX) for(var?i=0;i<len;i++){ temp?=?Math.ceil(Math.random()*20*Math.pow(-1,Math.ceil(Math.random()*10))); var?jx?=?(i)?%?(tempX); var?jy?=?Math.floor((i)/tempX); pics[i].style.left?=?temp+jx*(pics[0].offsetWidth-30)+"px"; pics[i].style.top?=?temp+jy*(pics[0].offsetHeight)+"px"; pics[i].style.WebkitTransform?=?'rotate('+temp+'deg)'; pics[i].style.transform?=?'rotate('+temp+'deg)'; } }
覺得很丑 10張張照片顯示出來 ?三行4列 ?然后最下面只有兩個
如何才能均勻的顯示
我發現不能均勻顯示
window.onload?=?function??()?{ var?pics?=?document.getElementsByClassName("pic"); var?len?=?pics.length; var?container?=?document.getElementsByClassName("container")[0]; var?cWidth?=?container.offsetWidth; console.log(cWidth); var?cHeight?=?container.offsetHeight; var?temp; for(var?i=0;i<len;i++){ pics[i].style.top?=?Math.ceil(Math.random()*cHeight)+"px"; pics[i].style.left?=?Math.ceil(Math.random()*cWidth)+"px"; temp?=?Math.ceil(Math.random()*20); pics[i].style.WebkitTransform?=?'rotate('+temp+'deg)'; pics[i].style.transform?=?'rotate('+temp+'deg)'; console.log(pics[i].style.top); } }
舉報
CSS3屬性輕松實現絢麗照片墻效果,展示不同位置不同角度多張照片
4 回答照片墻制作
1 回答怎么給這個照片墻加上響應式呢
1 回答css照片墻效果課程中使用的是什么軟件
2 回答這么多個圖片的位置和角度 是不是可以用js寫會簡單一點呢
2 回答照片堆疊的效果呢?
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2016-11-13
思路:獲取container的高寬,根據這個控制Math.random()的值作用與每張圖片的top、left值,再隨機設置個rotate的值
2016-11-14
修改一下:
var?tempX?=??5;
var?tempY?=2;
var blockWidth = cWidth / tempX;
?pics[i].style.left = blockWidth*Math.random()/2 + blockWidth*jx + "px";
如果要使用:
?var?tempX?=??Math.ceil(cWidth?/?pics[0].offsetWidth);
也可以得注意控制image的寬度
2016-11-13
覺得很丑 10張張照片顯示出來 ?三行4列 ?然后最下面只有兩個
2016-11-13
如何才能均勻的顯示
我發現不能均勻顯示