1. 程式人生 > >完成原生JavaScript+css+html之海報畫廊筆記

完成原生JavaScript+css+html之海報畫廊筆記

終於跟著老師的腳步完成了初步的海報畫廊。。。感覺程式碼不難 就是邏輯好繞。。。有時候真覺得混亂 腦袋裡亂七八糟的東西攪在一起 程式碼這有一點問題 那有一點問題。。。還是基本功不紮實。。。經過幾天折騰 在老師思路領導下 總算是完成了。。。以後還要好好完善完善。。。下面記錄一些程式碼中css和js的重點

CSS

1.perspective屬性

perspective 是 CSS3 屬性,目前瀏覽器都不支援 perspective 屬性,Chrome 和 Safari 支援替代的 -webkit-perspective 屬性。perspective 屬性定義 3D 元素距檢視的距離,以畫素計,其值越小,使用者與3D空間Z平面距離越近,視覺效果更令人印象深刻;反之,值越大,使用者與3D空間Z平面距離越遠,視覺效果就很小,當為元素定義 perspective 屬性時,其子元素會獲得透視效果,而不是元素本身,perspective 屬性隻影響 3D 轉換元素與 perspective-origin 屬性一同使用該屬性,這樣您就能夠改變 3D 元素的底部位置

perspective: number | none; 
number:元素距離檢視的距離,以畫素計(px 可以不寫)
none:預設值,與 0 相同,不設定透視

在3D變形中,除了perspective屬性可以啟用一個3D空間之外,在3D變形的函式中的perspective()也可以啟用3D空間。他們不同的地方是:perspective用在舞臺元素上(變形元素們的共同父元素);perspective()就是用在當前變形元素上,並且可以與其他的transform函式一起使用。例如,我們可以把:..stage {perspective: 600px;} 寫成 .stage .box {transform: perspective(600px);}  perspective()函式取值只能大於0,如果取值為0或比0小的值,將無法啟用3D空間

具體圖例可以看http://www.jscode.cn/web/v74937

2.transition屬性

IE 10、Firefox、Opera 和 Chrome 支援 transition 屬性,Safari 支援替代的 -webkit-transition 屬性 Internet Explorer 9 以及更早版本的瀏覽器不支援 transition 屬性

transition 屬性是一個簡寫屬性(預設值:all 0 ease 0),用於設定四個過渡屬性:
transition-property,定義應用過渡效果的 CSS 屬性名稱列表,列表以逗號分隔;all 則所有屬性都將獲得過渡效果
transition-duration,規定完成過渡效果需要多少秒或毫秒,必須始終設定 transition-duration 屬性,否則時長為 0,就不會產生過渡效果
transition-timing-function,規定速度效果的速度曲線(linear|ease|ease-in|ease-out|ease-in-out|cubic-bezier(n,n,n,n))
transition-delay,定義過渡效果何時開始

具體圖例可以看http://www.cnblogs.com/cocowool/archive/2012/07/23/2605600.html

3.backface-visibility 屬性

IE 10+ 和 Firefox 支援 backface-visibility 屬性,Opera 15+、Safari 和 Chrome 支援替代的 -webkit-backface-visibility 屬性

backface-visibility 屬性定義當元素不面向螢幕時是否可見
backface-visibility: visible | hidden
visible:背面是可見的
hidden:背面是不可見的

具體圖例可以看http://www.w3school.com.cn/cssref/pr_backface-visibility.asp

4.transform屬性

IE 10、Firefox、Opera 支援 transform 屬性,IE 9 支援替代的 -ms-transform 屬性(僅適用於 2D 轉換)Safari 和 Chrome 支援替代的 -webkit-transform 屬性(3D 和 2D 轉換),Opera 只支援 2D 轉換

transform: none | rotate | scale | skew | translate | matrix

如果有多個變換函式的時候,以空格分開
none: 表示不進行變換
rotate:旋轉。rotate(<angle>) :通過指定的角度引數對原元素指定一個 2D rotation,需先有 transform-origin 屬性的定義
scale:縮放。元素的縮放中心點是元素的中心位置,縮放基數為1,如果其值大於1元素就放大,反之其值小於1,元素縮小;
scale(x,y)使元素水平方向和垂直方向同時縮放;如果第二個引數未提供,則取與第一個引數一樣的值;
scaleX(x)元素僅水平方向縮放;scaleY(y)元素僅垂直方向縮放;其中 x, y 為數字
skew:扭曲。預設以元素中心為基點,也可以通過transform-origin來改變元素的基點位置;
skew(x,y)使元素在水平和垂直方向同時扭曲,如果沒有設定第二個引數,那麼Y軸為0deg;
skewX(x)僅使元素在水平方向扭曲變形;skewY(y)僅使元素在垂直方向扭曲變形,其中 x, y 為角度
translate:移動。移動物體時基點預設為元素中心點,也可以根據 transform-origin 進行改變基點;
translate(x,y)水平方向和垂直方向同時移動,如果第二個引數未提供,則以 0 作為其值;
translateX(x)僅水平方向移動;translateY(y)僅垂直方向移動;其中 x, y 為畫素值
matrix:矩陣。

transform-origin: x-axis y-axis z-axis; 設定旋轉元素的基點位置

x-axis:定義檢視被置於 X 軸的何處。可能的值:left | center | right | length | %

y-axis:定義檢視被置於 Y 軸的何處。可能的值:top | center | bottom | length | %

z-axis:定義檢視被置於 Z 軸的何處。可能的值:length

具體圖例參考:http://www.w3cplus.com/content/css3-transform/

5.transform-style:preserve-3d

IE不支援,Firefox 支援 transform-style 屬性,Chrome、Safari 和 Opera 支援替代的 -webkit-transform-style 屬性
transform-style 屬性規定如何在 3D 空間中呈現被巢狀的元素。
transform-style: flat | preserve-3d
flat: 子元素將不保留其 3D 位置
preserve-3d: 子元素將保留其 3D 位置
一般而言,該宣告應用在3D變換的兄弟元素們的父元素上,也就是舞臺元素
更多參考:http://www.zhangxinxu.com/wordpress/2012/09/css3-3d-transform-perspective-animate-transition/

javascript

1.訪問物件屬性

photo.style['transform'] = photo.style['-webkit-transform'] = 'rotate(' + random([-150, 150]) + 'deg) scale(0.8)';相當於photo.style.transform='rotate(' + random([-150, 150]) + 'deg) scale(1)';

function g(selector){
       var method=selector.substr(0,1)=='.'?'getElementsByClassName':'getElementById';
return document[method](selector.substr(1));
}

一般來說,訪問物件屬性時使用的都是點表示法,不過,在 JavaScript 中也可以使用方括號表示法來訪問物件的屬性。在使用方括號語法時,應該將要訪問的屬性以字串的形式放在方括號中,如下面的例子所示:
                        alert(person["name"]); //"Nicholas"
                        alert(person.name); //"Nicholas"
方括號語法的主要優點是可以通過變數來訪問屬性,如果屬性名中包含會導致語法錯誤的字元,或者屬性名使用的是關鍵字或保留字,也可以使用方括號表示法。例如:
                        person["first name"] = "Nicholas";
通常,除非必須使用變數來訪問屬性,否則建議使用點表示法。

2.split和join方法

var n=elem.id.split('_')[1]             (id是photo_n 字串變為陣列 取到n)

html.push('<div class="nav">'+nav.join('')+'</div>');  (陣列化為字串 預設為逗號連線 所以要加引號表示不用逗號)

我之前文章有詳細說 http://blog.csdn.net/heyue_99/article/details/52076946

3.test()方法

if(/photo_front/.test(cls)){                       //cls中是否存在photo_front
cls=cls.replace(/photo_front/,'photo_back');    //不能直接傳值 會覆蓋原有的className 要替換
//將按鈕圖示的樣式也改變
g('#nav_'+n).className+=' i_back ';  //同時處理控制按鈕
}

test() 方法用於檢測一個字串是否匹配某個模式.

詳見 http://www.w3school.com.cn/jsref/jsref_test_regexp.asp

4.replace()方法

replace方法是屬於String物件的,可用於替換字串。

var oHtml=temp.replace('{index}',s)

                         .replace('{image}',data[s].src)

                         .replace('{caption}',data[s].caption)

                         .replace('{desc}',data[s].desc);

cls=cls.replace(/photo_front/,'photo_back'); 

StringObject.replace(searchValue,replaceValue)

StringObject: 字串

searchValue:字串或正則表示式

replaceValue: 字串或者函式

replace()方法可連續使用

詳見http://blog.jobbole.com/50906/

5.substr()方法

substr() 方法可在字串中抽取從 start 下標開始的指定數目的字元。不會改變原字串。

function g(selector){
var method=selector.substr(0,1)=='.'?'getElementsByClassName':'getElementById';
return document[method](selector.substr(1));
}

又如

str='happy day'     //"happy day"
str.substr(2,2)       //"pp"
str                         //"happy day"

詳見 http://www.w3school.com.cn/jsref/jsref_substr.asp

6.splice()方法

splice() 方法向/從陣列中新增/刪除專案,然後返回被刪除的專案。

註釋:該方法會改變原始陣列,返回刪除的資料


photo_left=photo.splice(0,Math.ceil(photo.length/2));

又如

arr=[1,2,3,4,5,6]   //[1, 2, 3, 4, 5, 6]
arr.splice(1,2)       //[2, 3]   
arr                         //[1, 4, 5, 6]

詳見 http://www.w3school.com.cn/jsref/jsref_splice.asp

相關推薦

完成原生JavaScript+css+html海報畫廊筆記

終於跟著老師的腳步完成了初步的海報畫廊。。。感覺程式碼不難 就是邏輯好繞。。。有時候真覺得混亂 腦袋裡亂七八糟的東西攪在一起 程式碼這有一點問題 那有一點問題。。。還是基本功不紮實。。。經過幾天折騰

原生JavaScript實例簡單放大鏡

tel 默認 this hid RF div 樣式 mov doc 原生JavaScript實例之簡單放大鏡 放大鏡效果分析: 一、選項卡效果 鼠標移入小圖列表其中一張圖時,小圖邊框效果,大盒出現對應的大圖 二、放大鏡效果 鼠標移入大圖時,鼠標位置出現放大鏡,鼠

2017.9.24 基於HTML+JavaScript+CSS的開發案例&&JavaScript+CSS+DIV實現表格變色

菜單 dex ear 位置 下層 定義 -s html 頂部 1.JavaScript+CSS+DIV實現下拉菜單   1.1 層標簽<div> 基本語法:   <div id="層編號" style="position:absoult;left:29px

【2048小遊戲】——CSS/原生js爬坑CSS模態對話框&遊戲結束

函數 一半 窗口 內容 href 標準 tex true 存儲空間 引言:2048小遊戲的結束界面,使用純CSS制作模態對話框,一般做模態對話框都會使用BootStrap自帶的模態對話框組件方便使用,但在制作要運行在移動端的小項目時,就不能使用BootStrap,因為文件太

原生javaScript完成Ajax請求

-i sof end 創建 request 原因 失敗 .get ... 使用原生javaScript完成Ajax請求,首先應該創建一個對象XMLHttprequest,考慮到兼容低版本IE瀏覽器,使用ActiveXObject對象,代碼入下: var request;

htmlcss選擇器語法學習筆記

mil post ges inf important 類名 想要 geo none 相關內容: css選擇器的用法: 選擇器的語法 標簽選擇器 類選擇器 id選擇器 選擇器的分組 嵌套選擇 屬性選擇器 子標簽選擇器 相鄰兄弟選擇器 參考資料:w3school

Java學習總計(二十六)——JavaScript正則表達式,Js表單驗證,原生js+css頁面時鐘

text 先來 helloword 郵箱 用戶名 就是 lac round 外部 一.JavaScript正則表達式1.exec檢索字符串中指定的值,返回找到的值,並確定其位置2.test檢索字符串中指定的值,返回true或false3.正則表達式對象的創建:(1)方式一:

HTML JavaScript

分享圖片 play 直接 技術分享 ring 字母 -- 規範. 理念   JS 一、JS 概述   1.1 JS 歷史 1992年Nombas開發出C-minus-minus(C--)的嵌入式腳本語言(最初綁定在CEnvi軟件中).後將其改名ScriptEase.(客戶

一個尖括號能幹什麽,畫一個笑臉開始(為了支持交互,它又增添了JavaScriptHTML頁面也越來越臃腫。於是CSS便誕生了。API和核心代碼的出現使HTML能夠訪問更復雜的軟件功能--支持更高級的交互和雲服務集成。這就是今天的HTML5)

重要 htm 服務 廠商 inf web運行 ima 用戶 界面 一個尖括號 < 一個尖括號能幹什麽 < ? 你可以編出一頂帽子 <(:-p 或一張笑臉 :-> 再或者更直接一些 20世紀90年代初,html作為一種簡單標記語言面

一個尖括號能幹什麼,畫一個笑臉開始(為了支援互動,它又增添了JavaScriptHTML頁面也越來越臃腫。於是CSS便誕生了。API和核心程式碼的出現使HTML能夠訪問更復雜的軟體功能--支援更高階的互動和雲服務整合。這就是今天的HTML5)

一個尖括號 < 一個尖括號能幹什麼 < ? 你可以編出一頂帽子 <(:-p 或一張笑臉 :-> 再或者更直接一些   20世紀90年代初,html作為一種簡單標記語言面世,用於在網際網路上顯示超文字。經過發展,html逐漸包含圖片和佈局設計功能。為了支援互動,

Python基礎htmlcss基礎

CSS的發展歷程 從HTML被髮明開始,樣式就以各種形式存在。不同的瀏覽器結合它們各自的樣式語言為使用者提供頁面效果的控制。最初的HTML只包含很少的顯示屬性。 隨著HTML的成長,為了滿足頁面設計者的要求,HTML添加了很多顯示功能。但是隨著這些功能的增加,HTML變的越來越雜亂,而

HTML+JavaScript小練習簡易計算器

計算器應該是所有圖形化程式開發學習中最適合上手的一個小專案了,之前學習Java Swing和Android的時候也是從開發計算器開始做起,這一次使用HTML和JavaScript開發一個功能簡單的web計算器吧? 首先確定計算器的功能應該包括:輸入、逐個刪除、清空所有、顯示

css html javascript

css 進行修飾 大小 字型高度 背景 . class  id html 幾種型別 表單 表格 列表 外加標籤 屬性 javacript 函式定義 頁面本身跳轉 jQuery 簡化function document作用範圍

htmlcss屬性選擇器,偽類,繼承,選擇器優先順序,float

屬性選擇器 可以給標籤寫一個自定義屬性: <div class="c2" quincy="q1"></div> 查詢時可以根據自定義屬性名和值去查詢標籤: div[quincy] 或者div[quincy='q1']

使用原生JavaScript實現jQuery的css選擇器

使用原生JS實現jQuery的css選擇器,考慮以下幾個問題: 1.jQuery用$符號傳參的形式獲取節點的物件:1)傳參有可能是字串;2)有可能是一個節點物件;3)有可能直接是一個函式,就是$(fu

馬士兵html javascript css學習總結

HTML: 1>:html不區分大小寫,但推薦用小寫。 2>:<style>…</style>定義CSS格式 <Script language=“”>…</Script> 用於定義指令碼,Eg. Javas

原生JavaScriptajax總結

什麼都不說,直接上兩段程式碼,解開ajax的面紗,來看看原生js的ajax是如何工作的。 //ajax傳送GET請求 function ajaxGet(url,callback){ //第一步:建立XMLHttpRequest物件 var request = new XMLHttpReq

HTML+CSS實戰實現帶圖示的二級導航選單

效果圖如上 程式碼如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>純CSS實現帶圖示的二級導航選單</t

HTML+CSS實戰高階字型的實現

本次分享內容較為基礎,主要知識點便是css中盒子及文字陰影的應用 字型效果如下: 程式碼如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8">

JavaScript ------ JavaScripthtml的結合方式

JavaScript與html的結合方式 想要將其他程式碼融入到Html中,都是以標籤的形式。 1、 JS程式碼存放在標籤對<script> js code...</script>中。 2、當有多個html頁面使用到相同的JS指令碼時,可以將j