이 글은 주로 부트스트랩을 기반으로 한 간단한 캐러셀 이미지의 휴대폰 구현을 자세히 소개합니다. 관심 있는 친구들이 참고할 수 있습니다.
제 개인 컴퓨터에는 휴대폰 보기에 적합한 사진이 많이 있습니다. 하지만 휴대폰으로 시청하려면 많은 리소스가 필요합니다. 집에 컴퓨터가 있어서 자주 켜서 홈 LAN 공유에 사용하고 있기 때문에 저자는 비교적 간단하고 환경친화적인 아이디어를 떠올렸다. 휴대폰을 통해 컴퓨터에 있는 사진에 액세스하세요.
첫 번째는 로컬 사이트를 구축하는 것입니다: win+R을 누르고 mmc를 입력하여 콘솔, 파일 추가/삭제 관리 장치, 인터넷 정보 서비스를 엽니다. 확인, 오른쪽에 기본 정보를 추가하고 새 웹사이트를 생성하세요 - 경로를 변경하세요. 포트 번호를 설정하면 모바일 브라우저가 컴퓨터 LAN IP: 연결할 포트 번호를 입력할 수 있습니다.
다음 문제는 사진을 클릭해서 보고 하나씩 닫는 것은 환경 친화적이지 않다는 것입니다. 웹 방문을 해보시는 건 어떨까요? 가장 간단한 것은 탭 회전식 모드입니다. 부트스트랩의 적응 용이성을 고려하면 그냥 사용하세요.
1. 초기화 설정:
버튼 그룹(ul-li-button)(너무 길어서 오버플로가 모두 숨겨짐, 슬라이딩으로 표시해야 함), 버튼 그룹은 실제 상황에 따라 DOM을 사용하여 생성됩니다. , 페이지 진입 시 기본적으로 표시됩니다. 첫 번째 페이지는 빨간색으로 강조 표시됩니다.
점프 버튼: 텍스트 입력 상자, 버튼 스타일 입력
아름다운 그림 표시 영역
II. 페이지는 주로 세 가지 기능을 구현하며 각 기능은 세 가지 유형의 유사한 효과를 달성해야 합니다.
1. 손가락을 클릭하면 페이지가 자동으로 전환될 수 있습니다. 왼쪽과 오른쪽 영역을 클릭하면 img 레이어의 상단을 덮는 두 개의 투명한 절대 위치 지정 ps를 만드는 것입니다. 클릭 시 이벤트 발생 가능:
(1) 버튼 그룹 색상 변경 (2) 버튼 그룹 슬라이딩 (3) 이미지 전환
(ul-li-button) (ul-li-button) 시스템에서 버튼 그룹의 슬라이딩 거리는 현재 상황에 따라 앞으로 또는 뒤로 1li 너비 단위여야 합니다. 그러나 한 자리 숫자와 10자리 숫자의 적응형 버튼 너비는 다릅니다. 카테고리별로 논의해야합니다.
사진은 변경 후 빨간색 버튼의 일련번호에 따라 표시된 사진이 변경됩니다.
그러니까 모든 기능을 제어하는 것이 시퀀스 버튼입니다
2. 버튼 페이지를 클릭하면
이벤트 - 시퀀스 버튼이 클릭됩니다 (1) 클릭 버튼 색상 변경 - 클릭한 버튼이 빨간색으로 변합니다. , 다른 하나는 파란색 변경 - 어렵지 않습니다.
(2) 버튼 그룹 슬라이딩 대상 위치 - 현재 버튼의 왼쪽 값을 사용하고 ul-lipadding 15를 더해 - ul을 기준으로 현재 버튼의 오프셋을 계산합니다. 그런 다음 이 오프셋을 표시 영역을 기준으로 한 ul의 오프셋 값으로 사용합니다. (원한다면 버튼이 중앙에 보이도록 값을 추가할 수 있습니다.) (3) 이미지 전환, 빨간색 버튼에 변경된 일련번호에 따라 표시되는 이미지가 변경됩니다. 이 프로세스 1은 여전히 시퀀스 버튼을 사용하여 모든 기능을 제어합니다.
3. 입력 점프
이벤트 - 점프 버튼 클릭
(1) 버튼 색상이 바뀌고 입력 상자의 값에 따라 기본 js를 사용하여 일련 번호가 포함된 버튼을 선택합니다. 빨간색으로 변경
(2) 사진 전환, 이전과 동일. 이 과정은 입력 상자가 페이지의 모든 기능을 제어하는 과정입니다.
이 아이디어를 바탕으로 일반적인 기능이 구현됩니다.
세 가지 원칙이 있습니다.
(1) 애니메이션 제어: 휴대용 장치의 특성상 사용자는 매우 빠른 손 속도로 화면을 클릭할 수 있어 버튼을 멈출 수 없도록 이벤트가 자주 발생합니다. 판정 애니메이션 기능을 사용하여 달리는 것을 방지할 수 있습니다. 하지만 그렇게 하면 페이지가 딱딱해집니다. 페이드 아웃 - 이미지 경로 변경(지연된 실행) - 페이드 인 방법을 사용하는 것을 고려할 수 있습니다. 이는 빠른 사용자의 문제를 해결하고 어느 정도 부드러움을 향상시킬 수도 있습니다.
(2) 처음 사용할 때 극단적인 제어. 페이지 및 마지막 페이지 한 페이지에 도달하면 사용자가 더 이상 작업을 수행할 수 없도록 해야 합니다.
4. 추가 적용
url은 문자열이며 다음 요구 사항을 충족해야 합니다. 이미지 파일 이름은 "(일련 번호)"와 혼합되어야 하며 폴더 이름 등에 대한 요구 사항은 없습니다. 예: "Wenjing/wenjing().jjpg " 일련의 일련 번호는 js에 의해 생성됩니다. 그러니 쓸 필요가 없습니다.
구현 방법은 Slice() 메서드입니다.
5. 문제
부트스트랩 기능으로 인해 일부 사용자 정의 스타일의 성능이 디자인 사양을 충족하지 못할 수 있습니다.
렌더링: (ip6에 적용)
데모 주소: (휴대폰으로 시청을 권장) http://djtao.top/ugirl/
코드 목록 html
<!DOCTYPE html> <html lang="zh-cn"> <head> <!--页面编码 --> <meta charset="UTF-8"> <!--低版本浏览器模拟渲染--> <meta name="viewport" content="width=device-width, initialscale= 1, maximumscale=1, user-scalable=no"> <meta name="viewport" content="width=deviece-width,initial-scale=1"> <!--支持国产浏览器的高速渲染--> <meta name="renderer" content="Webkit"> <!--在此进行SEO设置:作者、关键词、描述--> <meta name="author" content="djtao"> <meta name="keywords" content="djtao"> <meta name="description" content="djtao"> <title>Ugirl</title> <!--bootstrap--> <!--以下两个js插件用于在IE8及以下支持H5元素查询的,如不用可移除 --> <!--[if lt IE 9]> <script src="scripts/html5.min.js"></script> <script src="scripts/respond.min.js"></script> <![endif]--> <!--bootstrap样式文件 --> <link rel="stylesheet" href="bootstrap/css/bootstrap.css"> <!--自定义样式文件 --> <link rel="stylesheet" href="styles/css.css"> <!--基于jQuery的脚本文件 --> <script src="scripts/jquery.min.js"></script> <!-- bootstrap的jq插件 --> <script src="bootstrap/js/bootstrap.min.js"></script> <!--自定义脚本文件 --> <script src="scripts/js.js"></script> </head> <body class="container"> <header> <h1>Ugirl <small>专业的秘密</small></h1> </header> <p id="main" class="row"> <p id="btn-group" class="col-xs-6"> <ul id="list" class="list-inline"></ul> </p> <p class="col-xs-6"> <form class="form-horizontal"> <p class="form-group has-success"> <p class="col-xs-6"><input class="form-control" id="num" style="width:100%" col="2" type="text"></p> <p class="col-xs-2"><input type="button" value="jump" class="btn btn-default"> </p> </form> </p> </p> </p> <p class="row"> <p id="box" class="col-xs-12"> <p id="last"></p> <p id="next"></p> <img class="img-responsive" src="img/wenjing/wenjing (1).jpg"> </p> </p> </body> </html>
css
body{ background: #f2f2f2; } #box{ position: relative; } #next{ width:50%;height:500px; position: absolute; left:50%; } #last{ width:50%;height:500px; position: absolute; } #btn-group{ height: 40px; overflow: hidden; } #list{ list-style: none; position: absolute; } #list>li{ list-style: none; float: left; position: relative; } #main{ margin-top: 20px; }
ja 바스크립트
function Ugirl(url,imgNum){ var aBtn=document.getElementsByTagName('button'); $('#list').css('width',(imgNum*(52))+'px'); var str=url; var index=0; for(i=0;i<str.length;i++){ if(str.slice(i-1,i)=='('){ index=i; } } var a=str.slice(0,index); var b=str.slice(index); //分割url字符串 for(j=1;j<=imgNum;j++){ var $btn = $('<li><button class="btn btn-primary">'+j+'</button></li>'); $btn.appendTo($('#list')); } aBtn[0].className='btn btn-danger'; //按钮初始化设置 //手指点击事件 $('#box p').click(function(){ if($(this).attr('id')=='next'){//下一个 if($('.btn-danger') .html()==imgNum){ alert('到底了哦'); return false; } liWidth=44; liWidth2=52; $('.btn-danger').removeClass().addClass('btn btn-primary') .parent().next().children().removeClass().addClass('btn btn-danger'); }else if($(this).attr('id')=='last'){//上一个 if($('.btn-danger') .html()==1){ alert('到顶了哦'); return false; }else{ $('.btn-danger').removeClass().addClass('btn btn-primary') .parent().prev().children().removeClass().addClass('btn btn-danger'); liWidth=-44; liWidth2=-52; } }else{ return false; }; //个位数按钮和10位数按钮宽度不同。所以设置两个 if($('.btn-danger') .html()<=10){ $('#list').animate({left:'-='+liWidth+'px'},400); }else if($('.btn-danger') .html()>10){ $('#list').animate({left:'-='+liWidth2+'px'},400); } //大图切换 $('img').fadeOut(200); setTimeout(function(){ $('img').attr('src',a+$('.btn-danger') .html()+b); },220) $('img').fadeIn(300); }); //选项按钮点击 $('button').click(function(){ $('button').attr('class','btn btn-primary'); $(this).attr('class','btn btn-danger'); var moveLength=-$(this).parent().position().left+15; $('#list').animate({left:moveLength+'px'},400); $('img').attr('src',a+$('.btn-danger') .html()+b); }); //跳转按钮点击 $('.btn-default').click(function(){ var s=$('#num').val(); if(s<1||s>imgNum){ return false; alert('没有那么多哦') }//极限设置 var pageNum=$('.btn-danger') .html(); $('img').attr('src',a+s+b); $('#list').children().children().removeClass().addClass('btn btn-primary'); $(aBtn[s-1]).removeClass().addClass('btn btn-danger'); var moveLength=-$(aBtn[s-1]).parent().position().left+15; $('#list').animate({left:moveLength+'px'},400); }) } $(function(){ Ugirl('img/wenjing/wenjing ().jpg',65); })//在其它页面也引入了Ugirl函数后,就可以直接调用直接调用
위 내용은 모두의 학습에 도움이 되기를 바랍니다. 더 많은 관련 내용은 PHP 중국어 홈페이지를 주목해주세요!
관련 권장 사항:
부트스트랩에서 양식 및 탐색 모음 사용 방법 분석에 대해
위 내용은 휴대폰에서 Bootstrap 이미지 캐러셀 효과 구현의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!