我試圖讓圖像而不是文本框。谷歌搜索,我發現這個網站:http://ryanfait.com/resources/custom-checkboxes-and-radio-buttons/,我真的很喜歡它的外觀。但由於我需要的複選框是在facebook和twiter中「共享」,我需要在複選框上顯示兩個不同的圖像。我能做到這一點,首先修改CSS:具有多個圖像的自定義複選框
.checkboxfb {
width: 23px; height: 23px; padding: 0 5px 0 0;
background: url(images/files/ico_facebook_mult_sml2.png) no-repeat;
display: block; clear: left; float: left;}
.checkboxtw {
width: 23px; height: 22px; padding: 0 5px 0 0;
background: url(images/files/twitter_logo_mult_sml.png) no-repeat;
display: block; clear: left; float: left;}
我在HTML區分彼此之間的類:
<form method="post" action=".">
<input type="checkbox" name="fb" class="styledfb" />FB <br /><br />
<input type="checkbox" name="tw" class="styledtw" />TW </form>
,複製腳本,FBcheckbox.js:
document.write('<style type="text/css">input.styled**fb** { display: none; } select.styled**fb** { position: relative; width: ' + selectWidth + 'px; opacity: 0; filter: alpha(opacity=0); z-index: 5; } .disabled { opacity: 0.5; filter: alpha(opacity=50); }</style>');
var Custom = {
inita: function() {
var inputs = document.getElementsByTagName("input"), span = Array(), textnode, option, active;
for(a = 0; a < inputs.length; a++) {
if((inputs[a].type == "checkbox" || inputs[a].type == "radio") && inputs[a].className == "styledfb") {
span[a] = document.createElement("span");
span[a].className = inputs[a].type + "**fb**";
當然,其他js文件將有'tw'而不是'fb',它被稱爲TWcheckbox.js。 (你可以在這裏看到整個js:http://pasionesargentas.webatu.com/js/checkbox/FBcheckbox.js和http://pasionesargentas.webatu.com/js/checkbox/TWcheckbox.js)。
在標題中,我呼籲這兩個文件:
<script type="text/javascript" src="js/checkbox/FBcheckbox.js"></script> <script type="text/javascript" src="js/checkbox/TWcheckbox.js"></script>
現在,有趣的是,只有一個在工作一段時間。在標題中調用它們時,以秒爲單位。測試文件是http://pasionesargentas.webatu.com/test1.php
謝謝你的時間。但是我仍然有一些麻煩:'window.onload = Custom.init'的語法是什麼?所以它會觸發inita和initb? – cbarg
我正在嘗試將Customa和Customb作爲變量和結果:只有第二個出現! – cbarg
嘿@cbarg,對不起,我錯過了那部分。分配window.onload兩次有同樣的問題 - 最近運行的window.onload分配將覆蓋以前的值。解決方法是使用如下語法:'if(window.addEventListener){window.addEventListener(「load」,Customa.inita,false); } else if(window.attachEvent){window.attachEvent(「onload」,Customa.inita); }' - 對於第二個JS文件,您可以將'Customa.inita'切換到'Customb.initb'。 – dentaku