Rumah hujung hadapan web tutorial js 用js和css画箭靶的代码

用js和css画箭靶的代码

Mar 26, 2018 pm 04:22 PM
css javascript

假设我现在要画一个类似箭靶的图,有3个圈,或许你可以用html直接把它们写出来,本文主要和大家分享用js和css画箭靶的代码,希望能帮助到大家。

//html部分<body>
    <p class="circle0">
        <p class="circle1">
            <p class="circle2">
            </p>
        </p>
    </p></body>
Salin selepas log masuk

那么让一个圆 居中 嵌套一个个圆呢?
这里有使用到position,position的值有fixed,static,relative,absolute,inherit,
其中static是默认值,fixed相对浏览器窗口定位,左上角坐标为(0,0);
relative叫相对定位,是相对自己来定位的,自己坐标是(0,0),left=20px表示向左偏移20px;
absolute叫绝对定位,是相对除static的第一个父元素来定位的
inherit是继承父元素的position属性值。

此处,我们这样做

.circle0{    /*大圆的大小*/
    /*如何画圆?先是画一个正方形*/
    width:600px;    height:600px;    /*然后设置圆角为50%,就变成一个圆*/
    border-radius:50%;    /*大圆设成relative作为第一个内圆的参考定位容器*/
    position:relative;    /*大圆居中*/
    margin:0 auto;    border:1px solid #000;    background-color:green;}
Salin selepas log masuk

继续手写内圆css,那么你们可能就要一个个写了,因为它们的大小不一样

.circle1{    width:400px;    height:400px;    border-radius:50%;    /*这是居中的一种方法哦*/
    position:absolute;    top:50%;    left:50%;    /*这样设置之后,圆会偏右下方,应该再往左上方移动一半的自己的宽和高*/
    margin-left:-200px;    margin-top:-200px;    /*这样就居中啦*/  

    border:1px solid #000;    background-color:green;}/*最里面的圆也是这样写,提示:此时它相对第二个圆定位,但是没有什么关系*/.circle2{    width:200px;    height:200px;    border-radius:50%;    position:absolute;    top:50%;    left:50%;    margin-left:-100px;    margin-top:-100px;  

    border:1px solid #000;    background-color:green;}
Salin selepas log masuk

尽管这样也可以写出你想要的三个圆的箭靶子,但是???

假如我要你画100个圆呢?你不可以一个个去写吧,多么重复的工作和代码啊,因此,进入这篇文章的主题吧,我们用js来写。

仔细的同学已经发现,每一个内圆的css的代码很有规律,它们只是大小不同,然后居中的代码是分为两部分,前一半部分一样,后一半部分是根据自身宽高的一半来写的。

那么既然找到规律了,我们就可以开始写了

/*css部分*/
    /*既然圆的大小是不一样的而且是有规律,那么我们就不写死了,先把一样的写出来吧,有同学可能想为什么不直接也在js中写?第一,因为这都是相同的代码,重复写几次,很耗空间,第二,在js中写这些比直接给它个className耗性能,所以我们能在css中写的还是在css中写,这样也能更好的分离*/
    .circle{        border-radius: 50%;        /*文本居中,为下一篇文章做铺垫*/
        text-align: center;        background-color: green;        border: 1px solid #000;        position: absolute;        top:50%;        left:50%;        cursor: pointer;    }
    /*利用id选择器的优先级比class大,覆盖掉一些属性值,大圆我们希望它在浏览器中也是居中的,而且position是相对定位的,大小也是不要写死,增加灵活性,修改的时候只需要修改几个参数*/
    #circle{        position: relative;        top:0;        left:0;        margin:10px auto;    }
Salin selepas log masuk
/*js部分*/window.onload=function(){
        //先创建大圆
        var layout=document.createElement("p");        //注意添加class和id的区别哦
        layout.className="circle";
        layout.id="circle";        var n=10;//n个圆,人为参数一,可根据需要修改
        var interval=30;//圆宽高依次小30px,间距则为15px,且最小的圆直径设为30px,则最大的圆的直径为n个interval,人为参数二,可根据需要修改

        layout.style.width=n*interval+"px";
        layout.style.height=n*interval+"px";        //添加文本
        layout.innerHTML=n;        //把大圆添加进body中
        document.getElementsByTagName("body")[0].appendChild(layout);        //接着创建小圆
        for(var i=1;i<n;i++){            //千万要在循环的时候重新给p指向哦,不然再第二个循环的时候就会出错
            var p=document.createElement("p");
            p.className="circle";            //画圆,返回的子圆作为父圆,继续画圆
            layout=loadp(layout,p,n-i); 
        }
    }    function loadp(parent,child,v){
        child.style.width=30*v+"px";
        child.style.height=30*v+"px";        //注意驼峰
        child.style.marginLeft=-15*v+"px";
        child.style.marginTop=-15*v+"px";        //添加文本
        child.innerHTML=v;        parent.appendChild(child);        //返回子圆哦
        //如果上面没有在每一次循环中重新指向一个新的p,在第二次循环的时候调用本函数就是在修改第一个内圆的属性值,而且在appendChild的时候发生错误
        return child;
    }
Salin selepas log masuk

ok啦,这样我们就不用用那么冗长的css和html写啦,利用他们之中的规律直接用js出来是不是很方便呀,嘻嘻。附上n=20,interval=30px的效果图:
这里写图片描述

Atas ialah kandungan terperinci 用js和css画箭靶的代码. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Arahan sembang dan cara menggunakannya
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Cara Menulis Garis Pecah Di Bootstrap Cara Menulis Garis Pecah Di Bootstrap Apr 07, 2025 pm 03:12 PM

Terdapat dua cara untuk membuat garis perpecahan bootstrap: menggunakan tag, yang mewujudkan garis perpecahan mendatar. Gunakan harta sempadan CSS untuk membuat garis perpecahan gaya tersuai.

Peranan HTML, CSS, dan JavaScript: Tanggungjawab Teras Peranan HTML, CSS, dan JavaScript: Tanggungjawab Teras Apr 08, 2025 pm 07:05 PM

HTML mentakrifkan struktur web, CSS bertanggungjawab untuk gaya dan susun atur, dan JavaScript memberikan interaksi dinamik. Ketiga melaksanakan tugas mereka dalam pembangunan web dan bersama -sama membina laman web yang berwarna -warni.

Cara memasukkan gambar di bootstrap Cara memasukkan gambar di bootstrap Apr 07, 2025 pm 03:30 PM

Terdapat beberapa cara untuk memasukkan imej dalam bootstrap: masukkan imej secara langsung, menggunakan tag HTML IMG. Dengan komponen imej bootstrap, anda boleh memberikan imej yang responsif dan lebih banyak gaya. Tetapkan saiz imej, gunakan kelas IMG-cecair untuk membuat imej boleh disesuaikan. Tetapkan sempadan, menggunakan kelas IMG-Sempadan. Tetapkan sudut bulat dan gunakan kelas IMG-bulat. Tetapkan bayangan, gunakan kelas bayangan. Saiz semula dan letakkan imej, menggunakan gaya CSS. Menggunakan imej latar belakang, gunakan harta CSS imej latar belakang.

Cara menggunakan bootstrap di vue Cara menggunakan bootstrap di vue Apr 07, 2025 pm 11:33 PM

Menggunakan bootstrap dalam vue.js dibahagikan kepada lima langkah: Pasang bootstrap. Import bootstrap di main.js. Gunakan komponen bootstrap secara langsung dalam templat. Pilihan: Gaya tersuai. Pilihan: Gunakan pemalam.

Cara mengubah saiz bootstrap Cara mengubah saiz bootstrap Apr 07, 2025 pm 03:18 PM

Untuk menyesuaikan saiz unsur-unsur dalam bootstrap, anda boleh menggunakan kelas dimensi, yang termasuk: menyesuaikan lebar: .col-, .w-, .mw-adjust ketinggian: .h-, .min-h-, .max-h-

Cara Menyiapkan Kerangka untuk Bootstrap Cara Menyiapkan Kerangka untuk Bootstrap Apr 07, 2025 pm 03:27 PM

Untuk menubuhkan rangka kerja bootstrap, anda perlu mengikuti langkah -langkah ini: 1. Rujuk fail bootstrap melalui CDN; 2. Muat turun dan tuan rumah fail pada pelayan anda sendiri; 3. Sertakan fail bootstrap di HTML; 4. Menyusun sass/kurang seperti yang diperlukan; 5. Import fail tersuai (pilihan). Setelah persediaan selesai, anda boleh menggunakan sistem grid Bootstrap, komponen, dan gaya untuk membuat laman web dan aplikasi yang responsif.

Cara menggunakan butang bootstrap Cara menggunakan butang bootstrap Apr 07, 2025 pm 03:09 PM

Bagaimana cara menggunakan butang bootstrap? Perkenalkan CSS bootstrap untuk membuat elemen butang dan tambahkan kelas butang bootstrap untuk menambah teks butang

Cara melihat tarikh bootstrap Cara melihat tarikh bootstrap Apr 07, 2025 pm 03:03 PM

Jawapan: Anda boleh menggunakan komponen pemetik tarikh bootstrap untuk melihat tarikh di halaman. Langkah -langkah: Memperkenalkan rangka kerja bootstrap. Buat kotak input pemilih Tarikh dalam HTML. Bootstrap secara automatik akan menambah gaya kepada pemilih. Gunakan JavaScript untuk mendapatkan tarikh yang dipilih.

See all articles