基于Tether下拉选择框美化特效代码

版权:原创 更新时间:1年以上
[该文章底部包含文件资源,可根据自己情况,决定是否下载资源使用,时间>金钱,如有需要,立即查看资源]

以下是 基于Tether下拉选择框美化特效代码 的示例演示效果:

当前平台(PC电脑)
  • 平台:

部分效果截图1:

基于Tether下拉选择框美化特效代码

部分效果截图2:

基于Tether下拉选择框美化特效代码

HTML代码(index.html):

<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> 
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>基于Tether下拉选择框美化特效</title>
<link rel="stylesheet" type="text/css" href="css/normalize.css" />
<link rel="stylesheet" type="text/css" href="css/zzsc-demo.css">
<link rel="stylesheet" href="dist/css/select-theme-dark.css" />
<style type="text/css">
	.container{
		width: 900px;
		margin: 0 auto;
	}
	select {
			font-size: 1em;
		}

		.scroll-parent {
			margin: 40px;
			height: 300px;
			width: 350px;
			display: inline-block;
			
			overflow: auto;
			border: 2px solid #eee;
			padding: 40px;
		}
</style>

</head>
<body>
<div class="container">
	<h3 class="center">左侧为没有美化的下拉框,右侧为美化后的下拉框</h3>
	<div class="scroll-parent">
		<select>
			<option value="">Select a country...</option>
			<option value="United States">United States</option>
			<option value="United Kingdom">United Kingdom</option>
			<option value="Afghanistan">Afghanistan</option>
			<option value="Aland Islands">Aland Islands</option>
			<option value="Albania">Albania</option>
			<option value="Algeria">Algeria</option>
			<option value="American Samoa">American Samoa</option>
			<option value="Andorra">Andorra</option>
			<option value="Angola">Angola</option>
			<option value="Anguilla">Anguilla</option>
			<option value="Antarctica">Antarctica</option>
			<option value="Antigua and Barbuda">Antigua and Barbuda</option>
			<option value="Argentina">Argentina</option>
			<option value="Armenia">Armenia</option>
			<option value="Aruba">Aruba</option>
			<option value="Australia">Australia</option>
			<option value="Austria">Austria</option>
			<option value="Azerbaijan">Azerbaijan</option>
			<option value="Bahamas">Bahamas</option>
			<option value="Bahrain">Bahrain</option>
			<option value="Bangladesh">Bangladesh</option>
			<option value="Barbados">Barbados</option>
			<option value="Belarus">Belarus</option>
			<option value="Belgium">Belgium</option>
			<option value="Belize">Belize</option>
			<option value="Benin">Benin</option>
			<option value="Bermuda">Bermuda</option>
			<option value="Bhutan">Bhutan</option>
			<option value="Bolivia, Plurinational State of">Bolivia, Plurinational State of</option>
			<option value="Bonaire, Sint Eustatius and Saba">Bonaire, Sint Eustatius and Saba</option>
			<option value="Bosnia and Herzegovina">Bosnia and Herzegovina</option>
			<option value="Botswana">Botswana</option>
			<option value="Bouvet Island">Bouvet Island</option>
			<option value="Brazil">Brazil</option>
			<option value="British Indian Ocean Territory">British Indian Ocean Territory</option>
			<option value="Brunei Darussalam">Brunei Darussalam</option>
			<option value="Bulgaria">Bulgaria</option>
			<option value="Burkina Faso">Burkina Faso</option>
			<option value="Burundi">Burundi</option>
			<option value="Cambodia">Cambodia</option>
			<option value="Cameroon">Cameroon</option>
			<option value="Canada">Canada</option>
			<option value="Cape Verde">Cape Verde</option>
			<option value="Cayman Islands">Cayman Islands</option>
			<option value="Central African Republic">Central African Republic</option>
			<option value="Chad">Chad</option>
			<option value="Chile">Chile</option>
			<option value="China">China</option>
			<option value="Christmas Island">Christmas Island</option>
			<option value="Cocos (Keeling) Islands">Cocos (Keeling) Islands</option>
			<option value="Colombia">Colombia</option>
			<option value="Comoros">Comoros</option>
			<option value="Congo">Congo</option>
			<option value="Congo, The Democratic Republic of The">Congo, The Democratic Republic of The</option>
			<option value="Cook Islands">Cook Islands</option>
			<option value="Costa Rica">Costa Rica</option>
			<option value="Cote D'ivoire">Cote D'ivoire</option>
			<option value="Croatia">Croatia</option>
			<option value="Cuba">Cuba</option>
			<option value="Curacao">Curacao</option>
			<option value="Cyprus">Cyprus</option>
			<option value="Czech Republic">Czech Republic</option>
			<option value="Denmark">Denmark</option>
			<option value="Djibouti">Djibouti</option>
			<option value="Dominica">Dominica</option>
			<option value="Dominican Republic">Dominican Republic</option>
			<option value="Ecuador">Ecuador</option>
			<option value="Egypt">Egypt</option>
			<option value="El Salvador">El Salvador</option>
			<option value="Equatorial Guinea">Equatorial Guinea</option>
			<option value="Eritrea">Eritrea</option>
			<option value="Estonia">Estonia</option>
			<option value="Ethiopia">Ethiopia</option>
			<option value="Falkland Islands (Malvinas)">Falkland Islands (Malvinas)</option>
			<option value="Faroe Islands">Faroe Islands</option>
			<option value="Fiji">Fiji</option>
			<option value="Finland">Finland</option>
			<option value="France">France</option>
			<option value="French Guiana">French Guiana</option>
			<option value="French Polynesia">French Polynesia</option>
			<option value="French Southern Territories">French Southern Territories</option>
			<option value="Gabon">Gabon</option>
			<option value="Gambia">Gambia</option>
			<option value="Georgia">Georgia</option>
			<option value="Germany">Germany</option>
			<option value="Ghana">Ghana</option>
			<option value="Gibraltar">Gibraltar</option>
			<option value="Greece">Greece</option>
			<option value="Greenland">Greenland</option>
			<option value="Grenada">Grenada</option>
			<option value="Guadeloupe">Guadeloupe</option>
			<option value="Guam">Guam</option>
			<option value="Guatemala">Guatemala</option>
			<option value="Guernsey">Guernsey</option>
			<option value="Guinea">Guinea</option>
			<option value="Guinea-bissau">Guinea-bissau</option>
			<option value="Guyana">Guyana</option>
			<option value="Haiti">Haiti</option>
			<option value="Heard Island and Mcdonald Islands">Heard Island and Mcdonald Islands</option>
			<option value="Holy See (Vatican City State)">Holy See (Vatican City State)</option>
			<option value="Honduras">Honduras</option>
			<option value="Hong Kong">Hong Kong</option>
			<option value="Hungary">Hungary</option>
			<option value="Iceland">Iceland</option>
			<option value="India">India</option>
			<option value="Indonesia">Indonesia</option>
			<option value="Iran, Islamic Republic of">Iran, Islamic Republic of</option>
			<option value="Iraq">Iraq</option>
			<option value="Ireland">Ireland</option>
			<option value="Isle of Man">Isle of Man</option>
			<option value="Israel">Israel</option>
			<option value="Italy">Italy</option>
			<option value="Jamaica">Jamaica</option>
			<option value="Japan">Japan</option>
			<option value="Jersey">Jersey</option>
			<option value="Jordan">Jordan</option>
			<option value="Kazakhstan">Kazakhstan</option>
			<option value="Kenya">Kenya</option>
			<option value="Kiribati">Kiribati</option>
			<option value="Korea, Democratic People's Republic of">Korea, Democratic People's Republic of</option>
			<option value="Korea, Republic of">Korea, Republic of</option>
			<option value="Kuwait">Kuwait</option>
			<option value="Kyrgyzstan">Kyrgyzstan</option>
			<option value="Lao People's Democratic Republic">Lao People's Democratic Republic</option>
			<option value="Latvia">Latvia</option>
			<option value="Lebanon">Lebanon</option>
			<option value="Lesotho">Lesotho</option>
			<option value="Liberia">Liberia</option>
			<option value="Libya">Libya</option>
			<option value="Liechtenstein">Liechtenstein</option>
			<option value="Lithuania">Lithuania</option>
			<option value="Luxembourg">Luxembourg</option>
			<option value="Macao">Macao</option>
			<option value="Macedonia, The Former Yugoslav Republic of">Macedonia, The Former Yugoslav Republic of</option>
			<option value="Madagascar">Madagascar</option>
			<option value="Malawi">Malawi</option>
			<option value="Malaysia">Malaysia</option>
			<option value="Maldives">Maldives</option>
			<option value="Mali">Mali</option>
			<option value="Malta">Malta</option>
			<option value="Marshall Islands">Marshall Islands</option>
			<option value="Martinique">Martinique</option>
			<option value="Mauritania">Mauritania</option>
			<option value="Mauritius">Mauritius</option>
			<option value="Mayotte">Mayotte</option>
			<option value="Mexico">Mexico</option>
			<option value="Micronesia, Federated States of">Micronesia, Federated States of</option>
			<option value="Moldova, Republic of">Moldova, Republic of</option>
			<option value="Monaco">Monaco</option>
			<option value="Mongolia">Mongolia</option>
			<option value="Montenegro">Montenegro</option>
			<option value="Montserrat">Montserrat</option>
			<option value="Morocco">Morocco</option>
			<option value="Mozambique">Mozambique</option>
			<option value="Myanmar">Myanmar</option>
			<option value="Namibia">Namibia</option>
			<option value="Nauru">Nauru</option>
			<option value="Nepal">Nepal</option>
			<option value="Netherlands">Netherlands</option>
			<option value="New Caledonia">New Caledonia</option>
			<option value="New Zealand">New Zealand</option>
			<option value="Nicaragua">Nicaragua</option>
			<option value="Niger">Niger</option>
			<option value="Nigeria">Nigeria</option>
			<option value="Niue">Niue</option>
			<option value="Norfolk Island">Norfolk Island</option>
			<option value="Northern Mariana Islands">Northern Mariana Islands</option>
			<option value="Norway">Norway</option>
			<option value="Oman">Oman</option>
			<option value="Pakistan">Pakistan</option>
			<option value="Palau">Palau</option>
			<option value="Palestinian Territory, Occupied">Palestinian Territory, Occupied</option>
			<option value="Panama">Panama</option>
			<option value="Papua New Guinea">Papua New Guinea</option>
			<option value="Paraguay">Paraguay</option>
			<option value="Peru">Peru</option>
			<option value="Philippines">Philippines</option>
			<option value="Pitcairn">Pitcairn</option>
			<option value="Poland">Poland</option>
			<option value="Portugal">Portugal</option>
			<option value="Puerto Rico">Puerto Rico</option>
			<option value="Qatar">Qatar</option>
			<option value="Reunion">Reunion</option>
			<option value="Romania">Romania</option>
			<option value="Russian Federation">Russian Federation</option>
			<option value="Rwanda">Rwanda</option>
			<option value="Saint Barthelemy">Saint Barthelemy</option>
			<option value="Saint Helena, Ascension and Tristan da Cunha">Saint Helena, Ascension and Tristan da Cunha</option>
			<option value="Saint Kitts and Nevis">Saint Kitts and Nevis</option>
			<option value="Saint Lucia">Saint Lucia</option>
			<option value="Saint Martin (French part)">Saint Martin (French part)</option>
			<option value="Saint Pierre and Miquelon">Saint Pierre and Miquelon</option>
			<option value="Saint Vincent and The Grenadines">Saint Vincent and The Grenadines</option>
			<option value="Samoa">Samoa</option>
			<option value="San Marino">San Marino</option>
			<option value="Sao Tome and Principe">Sao Tome and Principe</option>
			<option value="Saudi Arabia">Saudi Arabia</option>
			<option value="Senegal">Senegal</option>
			<option value="Serbia">Serbia</option>
			<option value="Seychelles">Seychelles</option>
			<option value="Sierra Leone">Sierra Leone</option>
			<option value="Singapore">Singapore</option>
			<option value="Sint Maarten (Dutch part)">Sint Maarten (Dutch part)</option>
			<option value="Slovakia">Slovakia</option>
			<option value="Slovenia">Slovenia</option>
			<option value="Solomon Islands">Solomon Islands</option>
			<option value="Somalia">Somalia</option>
			<option value="South Africa">South Africa</option>
			<option value="South Georgia and The South Sandwich Islands">South Georgia and The South Sandwich Islands</option>
			<option value="South Sudan">South Sudan</option>
			<option value="Spain">Spain</option>
			<option value="Sri Lanka">Sri Lanka</option>
			<option value="Sudan">Sudan</option>
			<option value="Suriname">Suriname</option>
			<option value="Svalbard and Jan Mayen">Svalbard and Jan Mayen</option>
			<option value="Swaziland">Swaziland</option>
			<option value="Sweden">Sweden</option>
			<option value="Switzerland">Switzerland</option>
			<option value="Syrian Arab Republic">Syrian Arab Republic</option>
			<option value="Taiwan, Province of China">Taiwan, Province of China</option>
			<option value="Tajikistan">Tajikistan</option>
			<option value="Tanzania, United Republic of">Tanzania, United Republic of</option>
			<option value="Thailand">Thailand</option>
			<option value="Timor-leste">Timor-leste</option>
			<option value="Togo">Togo</option>
			<option value="Tokelau">Tokelau</option>
			<option value="Tonga">Tonga</option>
			<option value="Trinidad and Tobago">Trinidad and Tobago</option>
			<option value="Tunisia">Tunisia</option>
			<option value="Turkey">Turkey</option>
			<option value="Turkmenistan">Turkmenistan</option>
			<option value="Turks and Caicos Islands">Turks and Caicos Islands</option>
			<option value="Tuvalu">Tuvalu</option>
			<option value="Uganda">Uganda</option>
			<option value="Ukraine">Ukraine</option>
			<option value="United Arab Emirates">United Arab Emirates</option>
			<option value="United Kingdom">United Kingdom</option>
			<option value="United States">United States</option>
			<option value="United States Minor Outlying Islands">United States Minor Outlying Islands</option>
			<option value="Uruguay">Uruguay</option>
			<option value="Uzbekistan">Uzbekistan</option>
			<option value="Vanuatu">Vanuatu</option>
			<option value="Venezuela, Bolivarian Republic of">Venezuela, Bolivarian Republic of</option>
			<option value="Viet Nam">Viet Nam</option>
			<option value="Virgin Islands, British">Virgin Islands, British</option>
			<option value="Virgin Islands, U.S.">Virgin Islands, U.S.</option>
			<option value="Wallis and Futuna">Wallis and Futuna</option>
			<option value="Western Sahara">Western Sahara</option>
			<option value="Yemen">Yemen</option>
			<option value="Zambia">Zambia</option>
			<option value="Zimbabwe">Zimbabwe</option>
		</select>
	</div>

	<div class="scroll-parent">
		<select data-select-like-alignement="never" class="drop-select">
			<option value="">Select a country...</option>
			<option value="United States">United States</option>
			<option value="United Kingdom">United Kingdom</option>
			<option value="Afghanistan">Afghanistan</option>
			<option value="Aland Islands">Aland Islands</option>
			<option value="Albania">Albania</option>
			<option value="Algeria">Algeria</option>
			<option value="American Samoa">American Samoa</option>
			<option value="Andorra">Andorra</option>
			<option value="Angola">Angola</option>
			<option value="Anguilla">Anguilla</option>
			<option value="Antarctica">Antarctica</option>
			<option value="Antigua and Barbuda">Antigua and Barbuda</option>
			<option value="Argentina">Argentina</option>
			<option value="Armenia">Armenia</option>
			<option value="Aruba">Aruba</option>
			<option value="Australia">Australia</option>
			<option value="Austria">Austria</option>
			<option value="Azerbaijan">Azerbaijan</option>
			<option value="Bahamas">Bahamas</option>
			<option value="Bahrain">Bahrain</option>
			<option value="Bangladesh">Bangladesh</option>
			<option value="Barbados">Barbados</option>
			<option value="Belarus">Belarus</option>
			<option value="Belgium">Belgium</option>
			<option value="Belize">Belize</option>
			<option value="Benin">Benin</option>
			<option value="Bermuda">Bermuda</option>
			<option value="Bhutan">Bhutan</option>
			<option value="Bolivia, Plurinational State of">Bolivia, Plurinational State of</option>
			<option value="Bonaire, Sint Eustatius and Saba">Bonaire, Sint Eustatius and Saba</option>
			<option value="Bosnia and Herzegovina">Bosnia and Herzegovina</option>
			<option value="Botswana">Botswana</option>
			<option value="Bouvet Island">Bouvet Island</option>
			<option value="Brazil">Brazil</option>
			<option value="British Indian Ocean Territory">British Indian Ocean Territory</option>
			<option value="Brunei Darussalam">Brunei Darussalam</option>
			<option value="Bulgaria">Bulgaria</option>
			<option value="Burkina Faso">Burkina Faso</option>
			<option value="Burundi">Burundi</option>
			<option value="Cambodia">Cambodia</option>
			<option value="Cameroon">Cameroon</option>
			<option value="Canada">Canada</option>
			<option value="Cape Verde">Cape Verde</option>
			<option value="Cayman Islands">Cayman Islands</option>
			<option value="Central African Republic">Central African Republic</option>
			<option value="Chad">Chad</option>
			<option value="Chile">Chile</option>
			<option value="China">China</option>
			<option value="Christmas Island">Christmas Island</option>
			<option value="Cocos (Keeling) Islands">Cocos (Keeling) Islands</option>
			<option value="Colombia">Colombia</option>
			<option value="Comoros">Comoros</option>
			<option value="Congo">Congo</option>
			<option value="Congo, The Democratic Republic of The">Congo, The Democratic Republic of The</option>
			<option value="Cook Islands">Cook Islands</option>
			<option value="Costa Rica">Costa Rica</option>
			<option value="Cote D'ivoire">Cote D'ivoire</option>
			<option value="Croatia">Croatia</option>
			<option value="Cuba">Cuba</option>
			<option value="Curacao">Curacao</option>
			<option value="Cyprus">Cyprus</option>
			<option value="Czech Republic">Czech Republic</option>
			<option value="Denmark">Denmark</option>
			<option value="Djibouti">Djibouti</option>
			<option value="Dominica">Dominica</option>
			<option value="Dominican Republic">Dominican Republic</option>
			<option value="Ecuador">Ecuador</option>
			<option value="Egypt">Egypt</option>
			<option value="El Salvador">El Salvador</option>
			<option value="Equatorial Guinea">Equatorial Guinea</option>
			<option value="Eritrea">Eritrea</option>
			<option value="Estonia">Estonia</option>
			<option value="Ethiopia">Ethiopia</option>
			<option value="Falkland Islands (Malvinas)">Falkland Islands (Malvinas)</option>
			<option value="Faroe Islands">Faroe Islands</option>
			<option value="Fiji">Fiji</option>
			<option value="Finland">Finland</option>
			<option value="France">France</option>
			<option value="French Guiana">French Guiana</option>
			<option value="French Polynesia">French Polynesia</option>
			<option value="French Southern Territories">French Southern Territories</option>
			<option value="Gabon">Gabon</option>
			<option value="Gambia">Gambia</option>
			<option value="Georgia">Georgia</option>
			<option value="Germany">Germany</option>
			<option value="Ghana">Ghana</option>
			<option value="Gibraltar">Gibraltar</option>
			<option value="Greece">Greece</option>
			<option value="Greenland">Greenland</option>
			<option value="Grenada">Grenada</option>
			<option value="Guadeloupe">Guadeloupe</option>
			<option value="Guam">Guam</option>
			<option value="Guatemala">Guatemala</option>
			<option value="Guernsey">Guernsey</option>
			<option value="Guinea">Guinea</option>
			<option value="Guinea-bissau">Guinea-bissau</option>
			<option value="Guyana">Guyana</option>
			<option value="Haiti">Haiti</option>
			<option value="Heard Island and Mcdonald Islands">Heard Island and Mcdonald Islands</option>
			<option value="Holy See (Vatican City State)">Holy See (Vatican City State)</option>
			<option value="Honduras">Honduras</option>
			<option value="Hong Kong">Hong Kong</option>
			<option value="Hungary">Hungary</option>
			<option value="Iceland">Iceland</option>
			<option value="India">India</option>
			<option value="Indonesia">Indonesia</option>
			<option value="Iran, Islamic Republic of">Iran, Islamic Republic of</option>
			<option value="Iraq">Iraq</option>
			<option value="Ireland">Ireland</option>
			<option value="Isle of Man">Isle of Man</option>
			<option value="Israel">Israel</option>
			<option value="Italy">Italy</option>
			<option value="Jamaica">Jamaica</option>
			<option value="Japan">Japan</option>
			<option value="Jersey">Jersey</option>
			<option value="Jordan">Jordan</option>
			<option value="Kazakhstan">Kazakhstan</option>
			<option value="Kenya">Kenya</option>
			<option value="Kiribati">Kiribati</option>
			<option value="Korea, Democratic People's Republic of">Korea, Democratic People's Republic of</option>
			<option value="Korea, Republic of">Korea, Republic of</option>
			<option value="Kuwait">Kuwait</option>
			<option value="Kyrgyzstan">Kyrgyzstan</option>
			<option value="Lao People's Democratic Republic">Lao People's Democratic Republic</option>
			<option value="Latvia">Latvia</option>
			<option value="Lebanon">Lebanon</option>
			<option value="Lesotho">Lesotho</option>
			<option value="Liberia">Liberia</option>
			<option value="Libya">Libya</option>
			<option value="Liechtenstein">Liechtenstein</option>
			<option value="Lithuania">Lithuania</option>
			<option value="Luxembourg">Luxembourg</option>
			<option value="Macao">Macao</option>
			<option value="Macedonia, The Former Yugoslav Republic of">Macedonia, The Former Yugoslav Republic of</option>
			<option value="Madagascar">Madagascar</option>
			<option value="Malawi">Malawi</option>
			<option value="Malaysia">Malaysia</option>
			<option value="Maldives">Maldives</option>
			<option value="Mali">Mali</option>
			<option value="Malta">Malta</option>
			<option value="Marshall Islands">Marshall Islands</option>
			<option value="Martinique">Martinique</option>
			<option value="Mauritania">Mauritania</option>
			<option value="Mauritius">Mauritius</option>
			<option value="Mayotte">Mayotte</option>
			<option value="Mexico">Mexico</option>
			<option value="Micronesia, Federated States of">Micronesia, Federated States of</option>
			<option value="Moldova, Republic of">Moldova, Republic of</option>
			<option value="Monaco">Monaco</option>
			<option value="Mongolia">Mongolia</option>
			<option value="Montenegro">Montenegro</option>
			<option value="Montserrat">Montserrat</option>
			<option value="Morocco">Morocco</option>
			<option value="Mozambique">Mozambique</option>
			<option value="Myanmar">Myanmar</option>
			<option value="Namibia">Namibia</option>
			<option value="Nauru">Nauru</option>
			<option value="Nepal">Nepal</option>
			<option value="Netherlands">Netherlands</option>
			<option value="New Caledonia">New Caledonia</option>
			<option value="New Zealand">New Zealand</option>
			<option value="Nicaragua">Nicaragua</option>
			<option value="Niger">Niger</option>
			<option value="Nigeria">Nigeria</option>
			<option value="Niue">Niue</option>
			<option value="Norfolk Island">Norfolk Island</option>
			<option value="Northern Mariana Islands">Northern Mariana Islands</option>
			<option value="Norway">Norway</option>
			<option value="Oman">Oman</option>
			<option value="Pakistan">Pakistan</option>
			<option value="Palau">Palau</option>
			<option value="Palestinian Territory, Occupied">Palestinian Territory, Occupied</option>
			<option value="Panama">Panama</option>
			<option value="Papua New Guinea">Papua New Guinea</option>
			<option value="Paraguay">Paraguay</option>
			<option value="Peru">Peru</option>
			<option value="Philippines">Philippines</option>
			<option value="Pitcairn">Pitcairn</option>
			<option value="Poland">Poland</option>
			<option value="Portugal">Portugal</option>
			<option value="Puerto Rico">Puerto Rico</option>
			<option value="Qatar">Qatar</option>
			<option value="Reunion">Reunion</option>
			<option value="Romania">Romania</option>
			<option value="Russian Federation">Russian Federation</option>
			<option value="Rwanda">Rwanda</option>
			<option value="Saint Barthelemy">Saint Barthelemy</option>
			<option value="Saint Helena, Ascension and Tristan da Cunha">Saint Helena, Ascension and Tristan da Cunha</option>
			<option value="Saint Kitts and Nevis">Saint Kitts and Nevis</option>
			<option value="Saint Lucia">Saint Lucia</option>
			<option value="Saint Martin (French part)">Saint Martin (French part)</option>
			<option value="Saint Pierre and Miquelon">Saint Pierre and Miquelon</option>
			<option value="Saint Vincent and The Grenadines">Saint Vincent and The Grenadines</option>
			<option value="Samoa">Samoa</option>
			<option value="San Marino">San Marino</option>
			<option value="Sao Tome and Principe">Sao Tome and Principe</option>
			<option value="Saudi Arabia">Saudi Arabia</option>
			<option value="Senegal">Senegal</option>
			<option value="Serbia">Serbia</option>
			<option value="Seychelles">Seychelles</option>
			<option value="Sierra Leone">Sierra Leone</option>
			<option value="Singapore">Singapore</option>
			<option value="Sint Maarten (Dutch part)">Sint Maarten (Dutch part)</option>
			<option value="Slovakia">Slovakia</option>
			<option value="Slovenia">Slovenia</option>
			<option value="Solomon Islands">Solomon Islands</option>
			<option value="Somalia">Somalia</option>
			<option value="South Africa">South Africa</option>
			<option value="South Georgia and The South Sandwich Islands">South Georgia and The South Sandwich Islands</option>
			<option value="South Sudan">South Sudan</option>
			<option value="Spain">Spain</option>
			<option value="Sri Lanka">Sri Lanka</option>
			<option value="Sudan">Sudan</option>
			<option value="Suriname">Suriname</option>
			<option value="Svalbard and Jan Mayen">Svalbard and Jan Mayen</option>
			<option value="Swaziland">Swaziland</option>
			<option value="Sweden">Sweden</option>
			<option value="Switzerland">Switzerland</option>
			<option value="Syrian Arab Republic">Syrian Arab Republic</option>
			<option value="Taiwan, Province of China">Taiwan, Province of China</option>
			<option value="Tajikistan">Tajikistan</option>
			<option value="Tanzania, United Republic of">Tanzania, United Republic of</option>
			<option value="Thailand">Thailand</option>
			<option value="Timor-leste">Timor-leste</option>
			<option value="Togo">Togo</option>
			<option value="Tokelau">Tokelau</option>
			<option value="Tonga">Tonga</option>
			<option value="Trinidad and Tobago">Trinidad and Tobago</option>
			<option value="Tunisia">Tunisia</option>
			<option value="Turkey">Turkey</option>
			<option value="Turkmenistan">Turkmenistan</option>
			<option value="Turks and Caicos Islands">Turks and Caicos Islands</option>
			<option value="Tuvalu">Tuvalu</option>
			<option value="Uganda">Uganda</option>
			<option value="Ukraine">Ukraine</option>
			<option value="United Arab Emirates">United Arab Emirates</option>
			<option value="United Kingdom">United Kingdom</option>
			<option value="United States">United States</option>
			<option value="United States Minor Outlying Islands">United States Minor Outlying Islands</option>
			<option value="Uruguay">Uruguay</option>
			<option value="Uzbekistan">Uzbekistan</option>
			<option value="Vanuatu">Vanuatu</option>
			<option value="Venezuela, Bolivarian Republic of">Venezuela, Bolivarian Republic of</option>
			<option value="Viet Nam">Viet Nam</option>
			<option value="Virgin Islands, British">Virgin Islands, British</option>
			<option value="Virgin Islands, U.S.">Virgin Islands, U.S.</option>
			<option value="Wallis and Futuna">Wallis and Futuna</option>
			<option value="Western Sahara">Western Sahara</option>
			<option value="Yemen">Yemen</option>
			<option value="Zambia">Zambia</option>
			<option value="Zimbabwe">Zimbabwe</option>
		</select>
	</div>

	<br/>
	<div></div>
	<br/>

	<div class="scroll-parent">
		<select>
			<option value="" selected="selected">Select a state...</option>
			<option value="AL">Alabama</option>
			<option value="AK">Alaska</option>
			<option value="AZ">Arizona</option>
			<option value="AR">Arkansas</option>
			<option value="CA">California</option>
			<option value="CO">Colorado</option>
			<option value="CT">Connecticut</option>
			<option value="DE">Delaware</option>
			<option value="DC">District Of Columbia</option>
			<option value="FL">Florida</option>
			<option value="GA">Georgia</option>
			<option value="HI">Hawaii</option>
			<option value="ID">Idaho</option>
			<option value="IL">Illinois</option>
			<option value="IN">Indiana</option>
			<option value="IA">Iowa</option>
			<option value="KS">Kansas</option>
			<option value="KY">Kentucky</option>
			<option value="LA">Louisiana</option>
			<option value="ME">Maine</option>
			<option value="MD">Maryland</option>
			<option value="MA">Massachusetts</option>
			<option value="MI">Michigan</option>
			<option value="MN">Minnesota</option>
			<option value="MS">Mississippi</option>
			<option value="MO">Missouri</option>
			<option value="MT">Montana</option>
			<option value="NE">Nebraska</option>
			<option value="NV">Nevada</option>
			<option value="NH">New Hampshire</option>
			<option value="NJ">New Jersey</option>
			<option value="NM">New Mexico</option>
			<option value="NY">New York</option>
			<option value="NC">North Carolina</option>
			<option value="ND">North Dakota</option>
			<option value="OH">Ohio</option>
			<option value="OK">Oklahoma</option>
			<option value="OR">Oregon</option>
			<option value="PA">Pennsylvania</option>
			<option value="RI">Rhode Island</option>
			<option value="SC">South Carolina</option>
			<option value="SD">South Dakota</option>
			<option value="TN">Tennessee</option>
			<option value="TX">Texas</option>
			<option value="UT">Utah</option>
			<option value="VT">Vermont</option>
			<option value="VA">Virginia</option>
			<option value="WA">Washington</option>
			<option value="WV">West Virginia</option>
			<option value="WI">Wisconsin</option>
			<option value="WY">Wyoming</option>
		</select>
	</div>

	<div class="scroll-parent">
		<select data-select-like-alignement="auto" class="drop-select">
			<option value="" selected="selected">Select a state...</option>
			<option value="AL">Alabama</option>
			<option value="AK">Alaska</option>
			<option value="AZ">Arizona</option>
			<option value="AR">Arkansas</option>
			<option value="CA">California</option>
			<option value="CO">Colorado</option>
			<option value="CT">Connecticut</option>
			<option value="DE">Delaware</option>
			<option value="DC">District Of Columbia</option>
			<option value="FL">Florida</option>
			<option value="GA">Georgia</option>
			<option value="HI">Hawaii</option>
			<option value="ID">Idaho</option>
			<option value="IL">Illinois</option>
			<option value="IN">Indiana</option>
			<option value="IA">Iowa</option>
			<option value="KS">Kansas</option>
			<option value="KY">Kentucky</option>
			<option value="LA">Louisiana</option>
			<option value="ME">Maine</option>
			<option value="MD">Maryland</option>
			<option value="MA">Massachusetts</option>
			<option value="MI">Michigan</option>
			<option value="MN">Minnesota</option>
			<option value="MS">Mississippi</option>
			<option value="MO">Missouri</option>
			<option value="MT">Montana</option>
			<option value="NE">Nebraska</option>
			<option value="NV">Nevada</option>
			<option value="NH">New Hampshire</option>
			<option value="NJ">New Jersey</option>
			<option value="NM">New Mexico</option>
			<option value="NY">New York</option>
			<option value="NC">North Carolina</option>
			<option value="ND">North Dakota</option>
			<option value="OH">Ohio</option>
			<option value="OK">Oklahoma</option>
			<option value="OR">Oregon</option>
			<option value="PA">Pennsylvania</option>
			<option value="RI">Rhode Island</option>
			<option value="SC">South Carolina</option>
			<option value="SD">South Dakota</option>
			<option value="TN">Tennessee</option>
			<option value="TX">Texas</option>
			<option value="UT">Utah</option>
			<option value="VT">Vermont</option>
			<option value="VA">Virginia</option>
			<option value="WA">Washington</option>
			<option value="WV">West Virginia</option>
			<option value="WI">Wisconsin</option>
			<option value="WY">Wyoming</option>
		</select>
	</div>

	<br/>
	<div></div>
	<br/>

	<div class="scroll-parent">
		<select>
			<option value="potato-chips">Potato chips</option>
			<option value="chips-and-salsa">Chips and salsa</option>
			<option value="cookies">Cookies</option>
			<option value="doritos">Doritos</option>
			<option value="pringles">Pringles</option>
			<option value="hot-pockets">Hot pockets</option>
		</select>
	</div>

	<div class="scroll-parent">
		<select data-select-like-alignement="never" class="drop-select">
			<option value="potato-chips">Potato chips</option>
			<option value="chips-and-salsa">Chips and salsa</option>
			<option value="cookies">Cookies</option>
			<option value="doritos">Doritos</option>
			<option value="pringles">Pringles</option>
			<option value="hot-pockets">Hot pockets</option>
		</select>
	</div>

	<br/>
	<div></div>
	<br/>

	<div class="scroll-parent">
		<select>
			<option value="potato-chips">Potato chips</option>
			<option selected="true" value="chips-and-salsa">Chips and salsa</option>
			<option value="cookies">Cookies</option>
			<option value="doritos">Doritos</option>
			<option value="pringles">Pringles</option>
			<option value="hot-pockets">Hot pockets</option>
		</select>
	</div>

	<div class="scroll-parent">
		Align dropdown items to target on open (like a real select):<br/>
		<select data-select-like-alignement="auto" class="drop-select">
			<option value="potato-chips">Potato chips</option>
			<option selected="true" value="chips-and-salsa">Chips and salsa</option>
			<option value="cookies">Cookies</option>
			<option value="doritos">Doritos</option>
			<option value="pringles">Pringles</option>
			<option value="hot-pockets">Hot pockets</option>
		</select>
	</div>

	<br/>
	<div></div>
	<br/>

	<div class="scroll-parent">
		<select>
			<option value="">Select a snack...</option>
			<option value="potato-chips">Potato chips</option>
			<option value="chips-and-salsa">Chips and salsa</option>
			<option value="cookies">Cookies</option>
			<option value="doritos">Doritos</option>
			<option value="pringles">Pringles</option>
			<option value="hot-pockets">Hot pockets</option>
		</select>
	</div>

	<div class="scroll-parent">
		<select data-select-like-alignement="never" class="drop-select">
			<option value="">Select a snack...</option>
			<option value="potato-chips">Potato chips</option>
			<option value="chips-and-salsa">Chips and salsa</option>
			<option value="cookies">Cookies</option>
			<option value="doritos">Doritos</option>
			<option value="pringles">Pringles</option>
			<option value="hot-pockets">Hot pockets</option>
		</select>
	</div>
</div>
<script src="js/jquery-2.1.1.min.js" type="text/javascript"></script>
<script type="text/javascript" src="js/tether.js"></script>
	<script src="dist/js/select.js"></script>
	<script>
		$('select.drop-select').each(function(){
			new Select({
				el: this,
				selectLikeAlignment: $(this).attr('data-select-like-alignement') || 'auto',
				className: 'select-theme-dark'
			});
		});
</script>
</body>
</html>

JS代码(tether.js):

/*! tether 1.0.2 */
(function(root,factory){
	if (typeof define === 'function' && define.amd){
	define(factory);
}
else if (typeof exports === 'object'){
	module.exports = factory(require,exports,module);
}
else{
	root.Tether = factory();
}
}
(this,function(require,exports,module){
	'use strict';
	var _createClass = (function (){
	function defineProperties(target,props){
	for (var i = 0;
	i < props.length;
	i++){
	var descriptor = props[i];
	descriptor.enumerable = descriptor.enumerable || false;
	descriptor.configurable = true;
	if ('value' in descriptor) descriptor.writable = true;
	Object.defineProperty(target,descriptor.key,descriptor);
}
}
return function (Constructor,protoProps,staticProps){
	if (protoProps) defineProperties(Constructor.prototype,protoProps);
	if (staticProps) defineProperties(Constructor,staticProps);
	return Constructor;
}
;
}
)();
	function _classCallCheck(instance,Constructor){
	if (!(instance instanceof Constructor)){
	throw new TypeError('Cannot call a class as a function');
}
}
var TetherBase = undefined;
	if (typeof TetherBase === 'undefined'){
	TetherBase ={
	modules:[]}
;
}
function getScrollParent(el){
	var _getComputedStyle = getComputedStyle(el);
	var position = _getComputedStyle.position;
	if (position === 'fixed'){
	return el;
}
var parent = el;
	while (parent = parent.parentNode){
	var style = undefined;
	try{
	style = getComputedStyle(parent);
}
catch (err){
}
if (typeof style === 'undefined' || style === null){
	return parent;
}
var overflow = style.overflow;
	var overflowX = style.overflowX;
	var overflowY = style.overflowY;
	if (/(auto|scroll)/.test(overflow + overflowY + overflowX)){
	if (position !== 'absolute' || ['relative','absolute','fixed'].indexOf(style.position) >= 0){
	return parent;
}
}
}
return document.body;
}
var uniqueId = (function (){
	var id = 0;
	return function (){
	return ++id;
}
;
}
)();
	var zeroPosCache ={
}
;
	var getOrigin = function getOrigin(doc){
	// getBoundingClientRect is unfortunately too accurate. It introduces a pixel or two of // jitter as the user scrolls that messes with our ability to detect if two positions // are equivilant or not. We place an element at the top left of the page that will // get the same jitter,so we can cancel the two out. var node = doc._tetherZeroElement;
	if (typeof node === 'undefined'){
	node = doc.createElement('div');
	node.setAttribute('data-tether-id',uniqueId());
	extend(node.style,{
	top:0,left:0,position:'absolute'}
);
	doc.body.appendChild(node);
	doc._tetherZeroElement = node;
}
var id = node.getAttribute('data-tether-id');
	if (typeof zeroPosCache[id] === 'undefined'){
	zeroPosCache[id] ={
}
;
	var rect = node.getBoundingClientRect();
	for (var k in rect){
	// Can't use extend,as on IE9,elements don't resolve to be hasOwnProperty zeroPosCache[id][k] = rect[k];
}
// Clear the cache when this position call is done defer(function (){
	delete zeroPosCache[id];
}
);
}
return zeroPosCache[id];
}
;
	function getBounds(el){
	var doc = undefined;
	if (el === document){
	doc = document;
	el = document.documentElement;
}
else{
	doc = el.ownerDocument;
}
var docEl = doc.documentElement;
	var box ={
}
;
	// The original object returned by getBoundingClientRect is immutable,so we clone it // We can't use extend because the properties are not considered part of the object by hasOwnProperty in IE9 var rect = el.getBoundingClientRect();
	for (var k in rect){
	box[k] = rect[k];
}
var origin = getOrigin(doc);
	box.top -= origin.top;
	box.left -= origin.left;
	if (typeof box.width === 'undefined'){
	box.width = document.body.scrollWidth - box.left - box.right;
}
if (typeof box.height === 'undefined'){
	box.height = document.body.scrollHeight - box.top - box.bottom;
}
box.top = box.top - docEl.clientTop;
	box.left = box.left - docEl.clientLeft;
	box.right = doc.body.clientWidth - box.width - box.left;
	box.bottom = doc.body.clientHeight - box.height - box.top;
	return box;
}
function getOffsetParent(el){
	return el.offsetParent || document.documentElement;
}
function getScrollBarSize(){
	var inner = document.createElement('div');
	inner.style.width = '100%';
	inner.style.height = '200px';
	var outer = document.createElement('div');
	extend(outer.style,{
	position:'absolute',top:0,left:0,pointerEvents:'none',visibility:'hidden',width:'200px',height:'150px',overflow:'hidden'}
);
	outer.appendChild(inner);
	document.body.appendChild(outer);
	var widthContained = inner.offsetWidth;
	outer.style.overflow = 'scroll';
	var widthScroll = inner.offsetWidth;
	if (widthContained === widthScroll){
	widthScroll = outer.clientWidth;
}
document.body.removeChild(outer);
	var width = widthContained - widthScroll;
	return{
	width:width,height:width}
;
}
function extend(){
	var out = arguments[0] === undefined ?{
}
:arguments[0];
	var args = [];
	Array.prototype.push.apply(args,arguments);
	args.slice(1).forEach(function (obj){
	if (obj){
	for (var key in obj){
	if (({
}
).hasOwnProperty.call(obj,key)){
	out[key] = obj[key];
}
}
}
}
);
	return out;
}
function removeClass(el,name){
	if (typeof el.classList !== 'undefined'){
	name.split(' ').forEach(function (cls){
	if (cls.trim()){
	el.classList.remove(cls);
}
}
);
}
else{
	var regex = new RegExp('(^| )' + name.split(' ').join('|') + '( |$)','gi');
	var className = getClassName(el).replace(regex,' ');
	setClassName(el,className);
}
}
function addClass(el,name){
	if (typeof el.classList !== 'undefined'){
	name.split(' ').forEach(function (cls){
	if (cls.trim()){
	el.classList.add(cls);
}
}
);
}
else{
	removeClass(el,name);
	var cls = getClassName(el) + ' #{
	name}
';
	setClassName(el,cls);
}
}
function hasClass(el,name){
	if (typeof el.classList !== 'undefined'){
	return el.classList.contains(name);
}
var className = getClassName(el);
	return new RegExp('(^| )' + name + '( |$)','gi').test(className);
}
function getClassName(el){
	if (el.className instanceof SVGAnimatedString){
	return el.className.baseVal;
}
return el.className;
}
function setClassName(el,className){
	el.setAttribute('class',className);
}
function updateClasses(el,add,all){
	// Of the set of 'all' classes,we need the 'add' classes,and only the // 'add' classes to be set. all.forEach(function (cls){
	if (add.indexOf(cls) === -1 && hasClass(el,cls)){
	removeClass(el,cls);
}
}
);
	add.forEach(function (cls){
	if (!hasClass(el,cls)){
	addClass(el,cls);
}
}
);
}
var deferred = [];
	var defer = function defer(fn){
	deferred.push(fn);
}
;
	var flush = function flush(){
	var fn = undefined;
	while (fn = deferred.pop()){
	fn();
}
}
;
	var Evented = (function (){
	function Evented(){
	_classCallCheck(this,Evented);
}
_createClass(Evented,[{
	key:'on',value:function on(event,handler,ctx){
	var once = arguments[3] === undefined ? false:arguments[3];
	if (typeof this.bindings === 'undefined'){
	this.bindings ={
}
;
}
if (typeof this.bindings[event] === 'undefined'){
	this.bindings[event] = [];
}
this.bindings[event].push({
	handler:handler,ctx:ctx,once:once}
);
}
}
,{
	key:'once',value:function once(event,handler,ctx){
	this.on(event,handler,ctx,true);
}
}
,{
	key:'off',value:function off(event,handler){
	if (typeof this.bindings !== 'undefined' && typeof this.bindings[event] !== 'undefined'){
	return;
}
if (typeof handler === 'undefined'){
	delete this.bindings[event];
}
else{
	var i = 0;
	while (i < this.bindings[event].length){
	if (this.bindings[event][i].handler === handler){
	this.bindings[event].splice(i,1);
}
else{
	++i;
}
}
}
}
}
,{
	key:'trigger',value:function trigger(event){
	for (var _len = arguments.length,args = Array(_len > 1 ? _len - 1:0),_key = 1;
	_key < _len;
	_key++){
	args[_key - 1] = arguments[_key];
}
if (typeof this.bindings !== 'undefined' && this.bindings[event]){
	var i = 0;
	while (i < this.bindings[event].length){
	var _bindings$event$i = this.bindings[event][i];
	var handler = _bindings$event$i.handler;
	var ctx = _bindings$event$i.ctx;
	var once = _bindings$event$i.once;
	var context = ctx;
	if (typeof context === 'undefined'){
	context = this;
}
handler.apply(context,args);
	if (once){
	this.bindings[event].splice(i,1);
}
else{
	++i;
}
}
}
}
}
]);
	return Evented;
}
)();
	TetherBase.Utils ={
	getScrollParent:getScrollParent,getBounds:getBounds,getOffsetParent:getOffsetParent,extend:extend,addClass:addClass,removeClass:removeClass,hasClass:hasClass,updateClasses:updateClasses,defer:defer,flush:flush,uniqueId:uniqueId,Evented:Evented,getScrollBarSize:getScrollBarSize}
;
	/* globals TetherBase,performance */
'use strict';
	var _createClass = (function (){
	function defineProperties(target,props){
	for (var i = 0;
	i < props.length;
	i++){
	var descriptor = props[i];
	descriptor.enumerable = descriptor.enumerable || false;
	descriptor.configurable = true;
	if ('value' in descriptor) descriptor.writable = true;
	Object.defineProperty(target,descriptor.key,descriptor);
}
}
return function (Constructor,protoProps,staticProps){
	if (protoProps) defineProperties(Constructor.prototype,protoProps);
	if (staticProps) defineProperties(Constructor,staticProps);
	return Constructor;
}
;
}
)();
	function _slicedToArray(arr,i){
	if (Array.isArray(arr)){
	return arr;
}
else if (Symbol.iterator in Object(arr)){
	var _arr = [];
	var _n = true;
	var _d = false;
	var _e = undefined;
	try{
	for (var _i = arr[Symbol.iterator](),_s;
	!(_n = (_s = _i.next()).done);
	_n = true){
	_arr.push(_s.value);
	if (i && _arr.length === i) break;
}
}
catch (err){
	_d = true;
	_e = err;
}
finally{
	try{
	if (!_n && _i['return']) _i['return']();
}
finally{
	if (_d) throw _e;
}
}
return _arr;
}
else{
	throw new TypeError('Invalid attempt to destructure non-iterable instance');
}
}
function _classCallCheck(instance,Constructor){
	if (!(instance instanceof Constructor)){
	throw new TypeError('Cannot call a class as a function');
}
}
if (typeof TetherBase === 'undefined'){
	throw new Error('You must include the utils.js file before tether.js');
}
var _TetherBase$Utils = TetherBase.Utils;
	var getScrollParent = _TetherBase$Utils.getScrollParent;
	var getBounds = _TetherBase$Utils.getBounds;
	var getOffsetParent = _TetherBase$Utils.getOffsetParent;
	var extend = _TetherBase$Utils.extend;
	var addClass = _TetherBase$Utils.addClass;
	var removeClass = _TetherBase$Utils.removeClass;
	var updateClasses = _TetherBase$Utils.updateClasses;
	var defer = _TetherBase$Utils.defer;
	var flush = _TetherBase$Utils.flush;
	var getScrollBarSize = _TetherBase$Utils.getScrollBarSize;
	function within(a,b){
	var diff = arguments[2] === undefined ? 1:arguments[2];
	return a + diff >= b && b >= a - diff;
}
var transformKey = (function (){
	var el = document.createElement('div');
	var transforms = ['transform','webkitTransform','OTransform','MozTransform','msTransform'];
	for (var i = 0;
	i < transforms.length;
	++i){
	var key = transforms[i];
	if (el.style[key] !== undefined){
	return key;
}
}
}
)();
	var tethers = [];
	var position = function position(){
	tethers.forEach(function (tether){
	tether.position(false);
}
);
	flush();
}
;
	function now(){
	if (typeof performance !== 'undefined' && typeof performance.now !== 'undefined'){
	return performance.now();
}
return +new Date();
}
(function (){
	var lastCall = null;
	var lastDuration = null;
	var pendingTimeout = null;
	var tick = function tick(){
	if (typeof lastDuration !== 'undefined' && lastDuration > 16){
	// We voluntarily throttle ourselves if we can't manage 60fps lastDuration = Math.min(lastDuration - 16,250);
	// Just in case this is the last event,remember to position just once more pendingTimeout = setTimeout(tick,250);
	return;
}
if (typeof lastCall !== 'undefined' && now() - lastCall < 10){
	// Some browsers call events a little too frequently,refuse to run more than is reasonable return;
}
if (typeof pendingTimeout !== 'undefined'){
	clearTimeout(pendingTimeout);
	pendingTimeout = null;
}
lastCall = now();
	position();
	lastDuration = now() - lastCall;
}
;
	['resize','scroll','touchmove'].forEach(function (event){
	window.addEventListener(event,tick);
}
);
}
)();
	var MIRROR_LR ={
	center:'center',left:'right',right:'left'}
;
	var MIRROR_TB ={
	middle:'middle',top:'bottom',bottom:'top'}
;
	var OFFSET_MAP ={
	top:0,left:0,middle:'50%',center:'50%',bottom:'100%',right:'100%'}
;
	var autoToFixedAttachment = function autoToFixedAttachment(attachment,relativeToAttachment){
	var left = attachment.left;
	var top = attachment.top;
	if (left === 'auto'){
	left = MIRROR_LR[relativeToAttachment.left];
}
if (top === 'auto'){
	top = MIRROR_TB[relativeToAttachment.top];
}
return{
	left:left,top:top}
;
}
;
	var attachmentToOffset = function attachmentToOffset(attachment){
	var left = attachment.left;
	var top = attachment.top;
	if (typeof OFFSET_MAP[attachment.left] !== 'undefined'){
	left = OFFSET_MAP[attachment.left];
}
if (typeof OFFSET_MAP[attachment.top] !== 'undefined'){
	top = OFFSET_MAP[attachment.top];
}
return{
	left:left,top:top}
;
}
;
	function addOffset(){
	for (var _len = arguments.length,offsets = Array(_len),_key = 0;
	_key < _len;
	_key++){
	offsets[_key] = arguments[_key];
}
var out ={
	top:0,left:0}
;
	offsets.forEach(function (_ref){
	var top = _ref.top;
	var left = _ref.left;
	if (typeof top === 'string'){
	top = parseFloat(top,10);
}
if (typeof left === 'string'){
	left = parseFloat(left,10);
}
out.top += top;
	out.left += left;
}
);
	return out;
}
function offsetToPx(offset,size){
	if (typeof offset.left === 'string' && offset.left.indexOf('%') !== -1){
	offset.left = parseFloat(offset.left,10) / 100 * size.width;
}
if (typeof offset.top === 'string' && offset.top.indexOf('%') !== -1){
	offset.top = parseFloat(offset.top,10) / 100 * size.height;
}
return offset;
}
var parseOffset = function parseOffset(value){
	var _value$split = value.split(' ');
	var _value$split2 = _slicedToArray(_value$split,2);
	var top = _value$split2[0];
	var left = _value$split2[1];
	return{
	top:top,left:left}
;
}
;
	var parseAttachment = parseOffset;
	var TetherClass = (function (){
	function TetherClass(options){
	var _this = this;
	_classCallCheck(this,TetherClass);
	this.position = this.position.bind(this);
	tethers.push(this);
	this.history = [];
	this.setOptions(options,false);
	TetherBase.modules.forEach(function (module){
	if (typeof module.initialize !== 'undefined'){
	module.initialize.call(_this);
}
}
);
	this.position();
}
_createClass(TetherClass,[{
	key:'getClass',value:function getClass(){
	var key = arguments[0] === undefined ? '':arguments[0];
	var classes = this.options.classes;
	if (typeof classes !== 'undefined' && classes[key]){
	return this.options.classes[key];
}
else if (this.options.classPrefix){
	return '' + this.options.classPrefix + '-' + key;
}
else{
	return key;
}
}
}
,{
	key:'setOptions',value:function setOptions(options){
	var _this2 = this;
	var pos = arguments[1] === undefined ? true:arguments[1];
	var defaults ={
	offset:'0 0',targetOffset:'0 0',targetAttachment:'auto auto',classPrefix:'tether'}
;
	this.options = extend(defaults,options);
	var _options = this.options;
	var element = _options.element;
	var target = _options.target;
	var targetModifier = _options.targetModifier;
	this.element = element;
	this.target = target;
	this.targetModifier = targetModifier;
	if (this.target === 'viewport'){
	this.target = document.body;
	this.targetModifier = 'visible';
}
else if (this.target === 'scroll-handle'){
	this.target = document.body;
	this.targetModifier = 'scroll-handle';
}
['element','target'].forEach(function (key){
	if (typeof _this2[key] === 'undefined'){
	throw new Error('Tether Error:Both element and target must be defined');
}
if (typeof _this2[key].jquery !== 'undefined'){
	_this2[key] = _this2[key][0];
}
else if (typeof _this2[key] === 'string'){
	_this2[key] = document.querySelector(_this2[key]);
}
}
);
	addClass(this.element,this.getClass('element'));
	if (!(this.options.addTargetClasses === false)){
	addClass(this.target,this.getClass('target'));
}
if (!this.options.attachment){
	throw new Error('Tether Error:You must provide an attachment');
}
this.targetAttachment = parseAttachment(this.options.targetAttachment);
	this.attachment = parseAttachment(this.options.attachment);
	this.offset = parseOffset(this.options.offset);
	this.targetOffset = parseOffset(this.options.targetOffset);
	if (typeof this.scrollParent !== 'undefined'){
	this.disable();
}
if (this.targetModifier === 'scroll-handle'){
	this.scrollParent = this.target;
}
else{
	this.scrollParent = getScrollParent(this.target);
}
if (!(this.options.enabled === false)){
	this.enable(pos);
}
}
}
,{
	key:'getTargetBounds',value:function getTargetBounds(){
	if (typeof this.targetModifier !== 'undefined'){
	if (this.targetModifier === 'visible'){
	if (this.target === document.body){
	return{
	top:pageYOffset,left:pageXOffset,height:innerHeight,width:innerWidth}
;
}
else{
	var bounds = getBounds(this.target);
	var out ={
	height:bounds.height,width:bounds.width,top:bounds.top,left:bounds.left}
;
	out.height = Math.min(out.height,bounds.height - (pageYOffset - bounds.top));
	out.height = Math.min(out.height,bounds.height - (bounds.top + bounds.height - (pageYOffset + innerHeight)));
	out.height = Math.min(innerHeight,out.height);
	out.height -= 2;
	out.width = Math.min(out.width,bounds.width - (pageXOffset - bounds.left));
	out.width = Math.min(out.width,bounds.width - (bounds.left + bounds.width - (pageXOffset + innerWidth)));
	out.width = Math.min(innerWidth,out.width);
	out.width -= 2;
	if (out.top < pageYOffset){
	out.top = pageYOffset;
}
if (out.left < pageXOffset){
	out.left = pageXOffset;
}
return out;
}
}
else if (this.targetModifier === 'scroll-handle'){
	var bounds = undefined;
	var target = this.target;
	if (target === document.body){
	target = document.documentElement;
	bounds ={
	left:pageXOffset,top:pageYOffset,height:innerHeight,width:innerWidth}
;
}
else{
	bounds = getBounds(target);
}
var style = getComputedStyle(target);
	var hasBottomScroll = target.scrollWidth > target.clientWidth || [style.overflow,style.overflowX].indexOf('scroll') >= 0 || this.target !== document.body;
	var scrollBottom = 0;
	if (hasBottomScroll){
	scrollBottom = 15;
}
var height = bounds.height - parseFloat(style.borderTopWidth) - parseFloat(style.borderBottomWidth) - scrollBottom;
	var out ={
	width:15,height:height * 0.975 * (height / target.scrollHeight),left:bounds.left + bounds.width - parseFloat(style.borderLeftWidth) - 15}
;
	var fitAdj = 0;
	if (height < 408 && this.target === document.body){
	fitAdj = -0.00011 * Math.pow(height,2) - 0.00727 * height + 22.58;
}
if (this.target !== document.body){
	out.height = Math.max(out.height,24);
}
var scrollPercentage = this.target.scrollTop / (target.scrollHeight - height);
	out.top = scrollPercentage * (height - out.height - fitAdj) + bounds.top + parseFloat(style.borderTopWidth);
	if (this.target === document.body){
	out.height = Math.max(out.height,24);
}
return out;
}
}
else{
	return getBounds(this.target);
}
}
}
,{
	key:'clearCache',value:function clearCache(){
	this._cache ={
}
;
}
}
,{
	key:'cache',value:function cache(k,getter){
	// More than one module will often need the same DOM info,so // we keep a cache which is cleared on each position call if (typeof this._cache === 'undefined'){
	this._cache ={
}
;
}
if (typeof this._cache[k] === 'undefined'){
	this._cache[k] = getter.call(this);
}
return this._cache[k];
}
}
,{
	key:'enable',value:function enable(){
	var pos = arguments[0] === undefined ? true:arguments[0];
	if (!(this.options.addTargetClasses === false)){
	addClass(this.target,this.getClass('enabled'));
}
addClass(this.element,this.getClass('enabled'));
	this.enabled = true;
	if (this.scrollParent !== document){
	this.scrollParent.addEventListener('scroll',this.position);
}
if (pos){
	this.position();
}
}
}
,{
	key:'disable',value:function disable(){
	removeClass(this.target,this.getClass('enabled'));
	removeClass(this.element,this.getClass('enabled'));
	this.enabled = false;
	if (typeof this.scrollParent !== 'undefined'){
	this.scrollParent.removeEventListener('scroll',this.position);
}
}
}
,{
	key:'destroy',value:function destroy(){
	var _this3 = this;
	this.disable();
	tethers.forEach(function (tether,i){
	if (tether === _this3){
	tethers.splice(i,1);
	return;
}
}
);
}
}
,{
	key:'updateAttachClasses',value:function updateAttachClasses(elementAttach,targetAttach){
	var _this4 = this;
	elementAttach = elementAttach || this.attachment;
	targetAttach = targetAttach || this.targetAttachment;
	var sides = ['left','top','bottom','right','middle','center'];
	if (typeof this._addAttachClasses !== 'undefined' && this._addAttachClasses.length){
	// updateAttachClasses can be called more than once in a position call,so // we need to clean up after ourselves such that when the last defer gets // ran it doesn't add any extra classes from previous calls. this._addAttachClasses.splice(0,this._addAttachClasses.length);
}
if (typeof this._addAttachClasses === 'undefined'){
	this._addAttachClasses = [];
}
var add = this._addAttachClasses;
	if (elementAttach.top){
	add.push('' + this.getClass('element-attached') + '-' + elementAttach.top);
}
if (elementAttach.left){
	add.push('' + this.getClass('element-attached') + '-' + elementAttach.left);
}
if (targetAttach.top){
	add.push('' + this.getClass('target-attached') + '-' + targetAttach.top);
}
if (targetAttach.left){
	add.push('' + this.getClass('target-attached') + '-' + targetAttach.left);
}
var all = [];
	sides.forEach(function (side){
	all.push('' + _this4.getClass('element-attached') + '-' + side);
	all.push('' + _this4.getClass('target-attached') + '-' + side);
}
);
	defer(function (){
	if (!(typeof _this4._addAttachClasses !== 'undefined')){
	return;
}
updateClasses(_this4.element,_this4._addAttachClasses,all);
	if (!(_this4.options.addTargetClasses === false)){
	updateClasses(_this4.target,_this4._addAttachClasses,all);
}
delete _this4._addAttachClasses;
}
);
}
}
,{
	key:'position',value:function position(){
	var _this5 = this;
	var flushChanges = arguments[0] === undefined ? true:arguments[0];
	// flushChanges commits the changes immediately,leave true unless you are positioning multiple // tethers (in which case call Tether.Utils.flush yourself when you're done) if (!this.enabled){
	return;
}
this.clearCache();
	// Turn 'auto' attachments into the appropriate corner or edge var targetAttachment = autoToFixedAttachment(this.targetAttachment,this.attachment);
	this.updateAttachClasses(this.attachment,targetAttachment);
	var elementPos = this.cache('element-bounds',function (){
	return getBounds(_this5.element);
}
);
	var width = elementPos.width;
	var height = elementPos.height;
	if (width === 0 && height === 0 && typeof this.lastSize !== 'undefined'){
	var _lastSize = this.lastSize;
	// We cache the height and width to make it possible to position elements that are // getting hidden. width = _lastSize.width;
	height = _lastSize.height;
}
else{
	this.lastSize ={
	width:width,height:height}
;
}
var targetPos = this.cache('target-bounds',function (){
	return _this5.getTargetBounds();
}
);
	var targetSize = targetPos;
	// Get an actual px offset from the attachment var offset = offsetToPx(attachmentToOffset(this.attachment),{
	width:width,height:height}
);
	var targetOffset = offsetToPx(attachmentToOffset(targetAttachment),targetSize);
	var manualOffset = offsetToPx(this.offset,{
	width:width,height:height}
);
	var manualTargetOffset = offsetToPx(this.targetOffset,targetSize);
	// Add the manually provided offset offset = addOffset(offset,manualOffset);
	targetOffset = addOffset(targetOffset,manualTargetOffset);
	// It's now our goal to make (element position + offset) == (target position + target offset) var left = targetPos.left + targetOffset.left - offset.left;
	var top = targetPos.top + targetOffset.top - offset.top;
	for (var i = 0;
	i < TetherBase.modules.length;
	++i){
	var _module2 = TetherBase.modules[i];
	var ret = _module2.position.call(this,{
	left:left,top:top,targetAttachment:targetAttachment,targetPos:targetPos,elementPos:elementPos,offset:offset,targetOffset:targetOffset,manualOffset:manualOffset,manualTargetOffset:manualTargetOffset,scrollbarSize:scrollbarSize,attachment:this.attachment}
);
	if (ret === false){
	return false;
}
else if (typeof ret === 'undefined' || typeof ret !== 'object'){
	continue;
}
else{
	top = ret.top;
	left = ret.left;
}
}
// We describe the position three different ways to give the optimizer // a chance to decide the best possible way to position the element // with the fewest repaints. var next ={
	// It's position relative to the page (absolute positioning when // the element is a child of the body) page:{
	top:top,left:left}
,// It's position relative to the viewport (fixed positioning) viewport:{
	top:top - pageYOffset,bottom:pageYOffset - top - height + innerHeight,left:left - pageXOffset,right:pageXOffset - left - width + innerWidth}
}
;
	var scrollbarSize = undefined;
	if (document.body.scrollWidth > window.innerWidth){
	scrollbarSize = this.cache('scrollbar-size',getScrollBarSize);
	next.viewport.bottom -= scrollbarSize.height;
}
if (document.body.scrollHeight > window.innerHeight){
	scrollbarSize = this.cache('scrollbar-size',getScrollBarSize);
	next.viewport.right -= scrollbarSize.width;
}
if (['','static'].indexOf(document.body.style.position) === -1 || ['','static'].indexOf(document.body.parentElement.style.position) === -1){
	// Absolute positioning in the body will be relative to the page,not the 'initial containing block' next.page.bottom = document.body.scrollHeight - top - height;
	next.page.right = document.body.scrollWidth - left - width;
}
if (typeof this.options.optimizations !== 'undefined' && this.options.optimizations.moveElement !== false && !(typeof this.targetModifier !== 'undefined')){
	(function (){
	var offsetParent = _this5.cache('target-offsetparent',function (){
	return getOffsetParent(_this5.target);
}
);
	var offsetPosition = _this5.cache('target-offsetparent-bounds',function (){
	return getBounds(offsetParent);
}
);
	var offsetParentStyle = getComputedStyle(offsetParent);
	var offsetParentSize = offsetPosition;
	var offsetBorder ={
}
;
	['Top','Left','Bottom','Right'].forEach(function (side){
	offsetBorder[side.toLowerCase()] = parseFloat(offsetParentStyle['border' + side + 'Width']);
}
);
	offsetPosition.right = document.body.scrollWidth - offsetPosition.left - offsetParentSize.width + offsetBorder.right;
	offsetPosition.bottom = document.body.scrollHeight - offsetPosition.top - offsetParentSize.height + offsetBorder.bottom;
	if (next.page.top >= offsetPosition.top + offsetBorder.top && next.page.bottom >= offsetPosition.bottom){
	if (next.page.left >= offsetPosition.left + offsetBorder.left && next.page.right >= offsetPosition.right){
	// We're within the visible part of the target's scroll parent var scrollTop = offsetParent.scrollTop;
	var scrollLeft = offsetParent.scrollLeft;
	// It's position relative to the target's offset parent (absolute positioning when // the element is moved to be a child of the target's offset parent). next.offset ={
	top:next.page.top - offsetPosition.top + scrollTop - offsetBorder.top,left:next.page.left - offsetPosition.left + scrollLeft - offsetBorder.left}
;
}
}
}
)();
}
// We could also travel up the DOM and try each containing context,rather than only // looking at the body,but we're gonna get diminishing returns. this.move(next);
	this.history.unshift(next);
	if (this.history.length > 3){
	this.history.pop();
}
if (flushChanges){
	flush();
}
return true;
}
}
,{
	key:'move',// THE ISSUE value:function move(pos){
	var _this6 = this;
	if (!(typeof this.element.parentNode !== 'undefined')){
	return;
}
var same ={
}
;
	for (var type in pos){
	same[type] ={
}
;
	for (var key in pos[type]){
	var found = false;
	for (var i = 0;
	i < this.history.length;
	++i){
	var point = this.history[i];
	if (typeof point[type] !== 'undefined' && !within(point[type][key],pos[type][key])){
	found = true;
	break;
}
}
if (!found){
	same[type][key] = true;
}
}
}
var css ={
	top:'',left:'',right:'',bottom:''}
;
	var transcribe = function transcribe(_same,_pos){
	var hasOptimizations = typeof _this6.options.optimizations !== 'undefined';
	var gpu = hasOptimizations ? _this6.options.optimizations.gpu:null;
	if (gpu !== false){
	var yPos = undefined,xPos = undefined;
	if (_same.top){
	css.top = 0;
	yPos = _pos.top;
}
else{
	css.bottom = 0;
	yPos = -_pos.bottom;
}
if (_same.left){
	css.left = 0;
	xPos = _pos.left;
}
else{
	css.right = 0;
	xPos = -_pos.right;
}
css[transformKey] = 'translateX(' + Math.round(xPos) + 'px) translateY(' + Math.round(yPos) + 'px)';
	if (transformKey !== 'msTransform'){
	// The Z transform will keep this in the GPU (faster,and prevents artifacts),// but IE9 doesn't support 3d transforms and will choke. css[transformKey] += ' translateZ(0)';
}
}
else{
	if (_same.top){
	css.top = '' + _pos.top + 'px';
}
else{
	css.bottom = '' + _pos.bottom + 'px';
}
if (_same.left){
	css.left = '' + _pos.left + 'px';
}
else{
	css.right = '' + _pos.right + 'px';
}
}
}
;
	var moved = false;
	if ((same.page.top || same.page.bottom) && (same.page.left || same.page.right)){
	css.position = 'absolute';
	transcribe(same.page,pos.page);
}
else if ((same.viewport.top || same.viewport.bottom) && (same.viewport.left || same.viewport.right)){
	css.position = 'fixed';
	transcribe(same.viewport,pos.viewport);
}
else if (typeof same.offset !== 'undefined' && same.offset.top && same.offset.left){
	(function (){
	css.position = 'absolute';
	var offsetParent = _this6.cache('target-offsetparent',function (){
	return getOffsetParent(_this6.target);
}
);
	if (getOffsetParent(_this6.element) !== offsetParent){
	defer(function (){
	_this6.element.parentNode.removeChild(_this6.element);
	offsetParent.appendChild(_this6.element);
}
);
}
transcribe(same.offset,pos.offset);
	moved = true;
}
)();
}
else{
	css.position = 'absolute';
	transcribe({
	top:true,left:true}
,pos.page);
}
if (!moved && this.element.parentNode.tagName !== 'BODY'){
	this.element.parentNode.removeChild(this.element);
	document.body.appendChild(this.element);
}
// Any css change will trigger a repaint,so let's avoid one if nothing changed var writeCSS ={
}
;
	var write = false;
	for (var key in css){
	var val = css[key];
	var elVal = this.element.style[key];
	if (elVal !== '' && val !== '' && ['top','left','bottom','right'].indexOf(key) >= 0){
	elVal = parseFloat(elVal);
	val = parseFloat(val);
}
if (elVal !== val){
	write = true;
	writeCSS[key] = val;
}
}
if (write){
	defer(function (){
	extend(_this6.element.style,writeCSS);
}
);
}
}
}
]);
	return TetherClass;
}
)();
	TetherClass.modules = [];
	TetherBase.position = position;
	var Tether = extend(TetherClass,TetherBase);
	/* globals TetherBase */
'use strict';
	function _slicedToArray(arr,i){
	if (Array.isArray(arr)){
	return arr;
}
else if (Symbol.iterator in Object(arr)){
	var _arr = [];
	var _n = true;
	var _d = false;
	var _e = undefined;
	try{
	for (var _i = arr[Symbol.iterator](),_s;
	!(_n = (_s = _i.next()).done);
	_n = true){
	_arr.push(_s.value);
	if (i && _arr.length === i) break;
}
}
catch (err){
	_d = true;
	_e = err;
}
finally{
	try{
	if (!_n && _i['return']) _i['return']();
}
finally{
	if (_d) throw _e;
}
}
return _arr;
}
else{
	throw new TypeError('Invalid attempt to destructure non-iterable instance');
}
}
var _TetherBase$Utils = TetherBase.Utils;
	var getBounds = _TetherBase$Utils.getBounds;
	var extend = _TetherBase$Utils.extend;
	var updateClasses = _TetherBase$Utils.updateClasses;
	var defer = _TetherBase$Utils.defer;
	var BOUNDS_FORMAT = ['left','top','right','bottom'];
	function getBoundingRect(tether,to){
	if (to === 'scrollParent'){
	to = tether.scrollParent;
}
else if (to === 'window'){
	to = [pageXOffset,pageYOffset,innerWidth + pageXOffset,innerHeight + pageYOffset];
}
if (to === document){
	to = to.documentElement;
}
if (typeof to.nodeType !== 'undefined'){
	(function (){
	var size = getBounds(to);
	var pos = size;
	var style = getComputedStyle(to);
	to = [pos.left,pos.top,size.width + pos.left,size.height + pos.top];
	BOUNDS_FORMAT.forEach(function (side,i){
	side = side[0].toUpperCase() + side.substr(1);
	if (side === 'Top' || side === 'Left'){
	to[i] += parseFloat(style['border' + side + 'Width']);
}
else{
	to[i] -= parseFloat(style['border' + side + 'Width']);
}
}
);
}
)();
}
return to;
}
TetherBase.modules.push({
	position:function position(_ref){
	var _this = this;
	var top = _ref.top;
	var left = _ref.left;
	var targetAttachment = _ref.targetAttachment;
	if (!this.options.constraints){
	return true;
}
var _cache = this.cache('element-bounds',function (){
	return getBounds(_this.element);
}
);
	var height = _cache.height;
	var width = _cache.width;
	if (width === 0 && height === 0 && typeof this.lastSize !== 'undefined'){
	var _lastSize = this.lastSize;
	// Handle the item getting hidden as a result of our positioning without glitching // the classes in and out width = _lastSize.width;
	height = _lastSize.height;
}
var targetSize = this.cache('target-bounds',function (){
	return _this.getTargetBounds();
}
);
	var targetHeight = targetSize.height;
	var targetWidth = targetSize.width;
	var allClasses = [this.getClass('pinned'),this.getClass('out-of-bounds')];
	this.options.constraints.forEach(function (constraint){
	var outOfBoundsClass = constraint.outOfBoundsClass;
	var pinnedClass = constraint.pinnedClass;
	if (outOfBoundsClass){
	allClasses.push(outOfBoundsClass);
}
if (pinnedClass){
	allClasses.push(pinnedClass);
}
}
);
	allClasses.forEach(function (cls){
	['left','top','right','bottom'].forEach(function (side){
	allClasses.push('' + cls + '-' + side);
}
);
}
);
	var addClasses = [];
	var tAttachment = extend({
}
,targetAttachment);
	var eAttachment = extend({
}
,this.attachment);
	this.options.constraints.forEach(function (constraint){
	var to = constraint.to;
	var attachment = constraint.attachment;
	var pin = constraint.pin;
	if (typeof attachment === 'undefined'){
	attachment = '';
}
var changeAttachX = undefined,changeAttachY = undefined;
	if (attachment.indexOf(' ') >= 0){
	var _attachment$split = attachment.split(' ');
	var _attachment$split2 = _slicedToArray(_attachment$split,2);
	changeAttachY = _attachment$split2[0];
	changeAttachX = _attachment$split2[1];
}
else{
	changeAttachX = changeAttachY = attachment;
}
var bounds = getBoundingRect(_this,to);
	if (changeAttachY === 'target' || changeAttachY === 'both'){
	if (top < bounds[1] && tAttachment.top === 'top'){
	top += targetHeight;
	tAttachment.top = 'bottom';
}
if (top + height > bounds[3] && tAttachment.top === 'bottom'){
	top -= targetHeight;
	tAttachment.top = 'top';
}
}
if (changeAttachY === 'together'){
	if (top < bounds[1] && tAttachment.top === 'top'){
	if (eAttachment.top === 'bottom'){
	top += targetHeight;
	tAttachment.top = 'bottom';
	top += height;
	eAttachment.top = 'top';
}
else if (eAttachment.top === 'top'){
	top += targetHeight;
	tAttachment.top = 'bottom';
	top -= height;
	eAttachment.top = 'bottom';
}
}
if (top + height > bounds[3] && tAttachment.top === 'bottom'){
	if (eAttachment.top === 'top'){
	top -= targetHeight;
	tAttachment.top = 'top';
	top -= height;
	eAttachment.top = 'bottom';
}
else if (eAttachment.top === 'bottom'){
	top -= targetHeight;
	tAttachment.top = 'top';
	top += height;
	eAttachment.top = 'top';
}
}
if (tAttachment.top === 'middle'){
	if (top + height > bounds[3] && eAttachment.top === 'top'){
	top -= height;
	eAttachment.top = 'bottom';
}
else if (top < bounds[1] && eAttachment.top === 'bottom'){
	top += height;
	eAttachment.top = 'top';
}
}
}
if (changeAttachX === 'target' || changeAttachX === 'both'){
	if (left < bounds[0] && tAttachment.left === 'left'){
	left += targetWidth;
	tAttachment.left = 'right';
}
if (left + width > bounds[2] && tAttachment.left === 'right'){
	left -= targetWidth;
	tAttachment.left = 'left';
}
}
if (changeAttachX === 'together'){
	if (left < bounds[0] && tAttachment.left === 'left'){
	if (eAttachment.left === 'right'){
	left += targetWidth;
	tAttachment.left = 'right';
	left += width;
	eAttachment.left = 'left';
}
else if (eAttachment.left === 'left'){
	left += targetWidth;
	tAttachment.left = 'right';
	left -= width;
	eAttachment.left = 'right';
}
}
else if (left + width > bounds[2] && tAttachment.left === 'right'){
	if (eAttachment.left === 'left'){
	left -= targetWidth;
	tAttachment.left = 'left';
	left -= width;
	eAttachment.left = 'right';
}
else if (eAttachment.left === 'right'){
	left -= targetWidth;
	tAttachment.left = 'left';
	left += width;
	eAttachment.left = 'left';
}
}
else if (tAttachment.left === 'center'){
	if (left + width > bounds[2] && eAttachment.left === 'left'){
	left -= width;
	eAttachment.left = 'right';
}
else if (left < bounds[0] && eAttachment.left === 'right'){
	left += width;
	eAttachment.left = 'left';
}
}
}
if (changeAttachY === 'element' || changeAttachY === 'both'){
	if (top < bounds[1] && eAttachment.top === 'bottom'){
	top += height;
	eAttachment.top = 'top';
}
if (top + height > bounds[3] && eAttachment.top === 'top'){
	top -= height;
	eAttachment.top = 'bottom';
}
}
if (changeAttachX === 'element' || changeAttachX === 'both'){
	if (left < bounds[0] && eAttachment.left === 'right'){
	left += width;
	eAttachment.left = 'left';
}
if (left + width > bounds[2] && eAttachment.left === 'left'){
	left -= width;
	eAttachment.left = 'right';
}
}
if (typeof pin === 'string'){
	pin = pin.split(',').map(function (p){
	return p.trim();
}
);
}
else if (pin === true){
	pin = ['top','left','right','bottom'];
}
pin = pin || [];
	var pinned = [];
	var oob = [];
	if (top < bounds[1]){
	if (pin.indexOf('top') >= 0){
	top = bounds[1];
	pinned.push('top');
}
else{
	oob.push('top');
}
}
if (top + height > bounds[3]){
	if (pin.indexOf('bottom') >= 0){
	top = bounds[3] - height;
	pinned.push('bottom');
}
else{
	oob.push('bottom');
}
}
if (left < bounds[0]){
	if (pin.indexOf('left') >= 0){
	left = bounds[0];
	pinned.push('left');
}
else{
	oob.push('left');
}
}
if (left + width > bounds[2]){
	if (pin.indexOf('right') >= 0){
	left = bounds[2] - width;
	pinned.push('right');
}
else{
	oob.push('right');
}
}
if (pinned.length){
	(function (){
	var pinnedClass = undefined;
	if (typeof _this.options.pinnedClass !== 'undefined'){
	pinnedClass = _this.options.pinnedClass;
}
else{
	pinnedClass = _this.getClass('pinned');
}
addClasses.push(pinnedClass);
	pinned.forEach(function (side){
	addClasses.push('' + pinnedClass + '-' + side);
}
);
}
)();
}
if (oob.length){
	(function (){
	var oobClass = undefined;
	if (typeof _this.options.outOfBoundsClass !== 'undefined'){
	oobClass = _this.options.outOfBoundsClass;
}
else{
	oobClass = _this.getClass('out-of-bounds');
}
addClasses.push(oobClass);
	oob.forEach(function (side){
	addClasses.push('' + oobClass + '-' + side);
}
);
}
)();
}
if (pinned.indexOf('left') >= 0 || pinned.indexOf('right') >= 0){
	eAttachment.left = tAttachment.left = false;
}
if (pinned.indexOf('top') >= 0 || pinned.indexOf('bottom') >= 0){
	eAttachment.top = tAttachment.top = false;
}
if (tAttachment.top !== targetAttachment.top || tAttachment.left !== targetAttachment.left || eAttachment.top !== _this.attachment.top || eAttachment.left !== _this.attachment.left){
	_this.updateAttachClasses(eAttachment,tAttachment);
}
}
);
	defer(function (){
	if (!(_this.options.addTargetClasses === false)){
	updateClasses(_this.target,addClasses,allClasses);
}
updateClasses(_this.element,addClasses,allClasses);
}
);
	return{
	top:top,left:left}
;
}
}
);
	/* globals TetherBase */
'use strict';
	var _TetherBase$Utils = TetherBase.Utils;
	var getBounds = _TetherBase$Utils.getBounds;
	var updateClasses = _TetherBase$Utils.updateClasses;
	var defer = _TetherBase$Utils.defer;
	TetherBase.modules.push({
	position:function position(_ref){
	var _this = this;
	var top = _ref.top;
	var left = _ref.left;
	var _cache = this.cache('element-bounds',function (){
	return getBounds(_this.element);
}
);
	var height = _cache.height;
	var width = _cache.width;
	var targetPos = this.getTargetBounds();
	var bottom = top + height;
	var right = left + width;
	var abutted = [];
	if (top <= targetPos.bottom && bottom >= targetPos.top){
	['left','right'].forEach(function (side){
	var targetPosSide = targetPos[side];
	if (targetPosSide === left || targetPosSide === right){
	abutted.push(side);
}
}
);
}
if (left <= targetPos.right && right >= targetPos.left){
	['top','bottom'].forEach(function (side){
	var targetPosSide = targetPos[side];
	if (targetPosSide === top || targetPosSide === bottom){
	abutted.push(side);
}
}
);
}
var allClasses = [];
	var addClasses = [];
	var sides = ['left','top','right','bottom'];
	allClasses.push(this.getClass('abutted'));
	sides.forEach(function (side){
	allClasses.push('' + _this.getClass('abutted') + '-' + side);
}
);
	if (abutted.length){
	addClasses.push(this.getClass('abutted'));
}
abutted.forEach(function (side){
	addClasses.push('' + _this.getClass('abutted') + '-' + side);
}
);
	defer(function (){
	if (!(_this.options.addTargetClasses === false)){
	updateClasses(_this.target,addClasses,allClasses);
}
updateClasses(_this.element,addClasses,allClasses);
}
);
	return true;
}
}
);
	/* globals TetherBase */
'use strict';
	function _slicedToArray(arr,i){
	if (Array.isArray(arr)){
	return arr;
}
else if (Symbol.iterator in Object(arr)){
	var _arr = [];
	var _n = true;
	var _d = false;
	var _e = undefined;
	try{
	for (var _i = arr[Symbol.iterator](),_s;
	!(_n = (_s = _i.next()).done);
	_n = true){
	_arr.push(_s.value);
	if (i && _arr.length === i) break;
}
}
catch (err){
	_d = true;
	_e = err;
}
finally{
	try{
	if (!_n && _i['return']) _i['return']();
}
finally{
	if (_d) throw _e;
}
}
return _arr;
}
else{
	throw new TypeError('Invalid attempt to destructure non-iterable instance');
}
}
TetherBase.modules.push({
	position:function position(_ref){
	var top = _ref.top;
	var left = _ref.left;
	if (!this.options.shift){
	return;
}
var shift = this.options.shift;
	if (typeof this.options.shift === 'function'){
	shift = this.options.shift.call(this,{
	top:top,left:left}
);
}
var shiftTop = undefined,shiftLeft = undefined;
	if (typeof shift === 'string'){
	shift = shift.split(' ');
	shift[1] = shift[1] || shift[0];
	var _shift = _slicedToArray(shift,2);
	shiftTop = _shift[0];
	shiftLeft = _shift[1];
	shiftTop = parseFloat(shiftTop,10);
	shiftLeft = parseFloat(shiftLeft,10);
}
else{
	shiftTop = shift.top;
	shiftLeft = shift.left;
}
top += shiftTop;
	left += shiftLeft;
	return{
	top:top,left:left}
;
}
}
);
	return Tether;
}
));
	

CSS代码(normalize.css):

article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block;}
audio,canvas,video{display:inline-block;}
audio:not([controls]){display:none;height:0;}
[hidden]{display:none;}
html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;}
body{margin:0;}
a:focus{outline:thin dotted;}
a:active,a:hover{outline:0;}
h1{font-size:2em;margin:0.67em 0;}
abbr[title]{border-bottom:1px dotted;}
b,strong{font-weight:bold;}
dfn{font-style:italic;}
hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0;}
mark{background:#ff0;color:#000;}
code,kbd,pre,samp{font-family:monospace,serif;font-size:1em;}
pre{white-space:pre-wrap;}
q{quotes:"\201C" "\201D" "\2018" "\2019";}
small{font-size:80%;}
sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline;}
sup{top:-0.5em;}
sub{bottom:-0.25em;}
img{border:0;}
svg:not(:root){overflow:hidden;}
figure{margin:0;}
fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em;}
legend{border:0;padding:0;}
button,input,select,textarea{font-family:inherit;font-size:100%;margin:0;}
button,input{line-height:normal;}
button,select{text-transform:none;}
button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer;}
button[disabled],html input[disabled]{cursor:default;}
input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0;}
input[type="search"]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box;}
input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none;}
button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0;}
textarea{overflow:auto;vertical-align:top;}
table{border-collapse:collapse;border-spacing:0;}

CSS代码(zzsc-demo.css):

body,html{font-size:100%;padding:0;margin:0;}
/* Reset */
*,*:after,*:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;}
/* Clearfix hack by Nicolas Gallagher:http://nicolasgallagher.com/micro-clearfix-hack/ */
.clearfix:before,.clearfix:after{content:" ";display:table;}
.clearfix:after{clear:both;}
body{font-weight:500;font-size:1.05em;font-family:"Microsoft YaHei","宋体","Segoe UI","Lucida Grande",Helvetica,Arial,sans-serif,FreeSans,Arimo;}
a{color:rgba(255,255,255,0.6);outline:none;text-decoration:none;-webkit-transition:0.2s;transition:0.2s;}
a:hover,a:focus{color:#74777b;text-decoration:none;}
.zzsc-container{margin:0 auto;}
.bgcolor-1{background:#f0efee;}
.bgcolor-2{background:#f9f9f9;}
.bgcolor-3{background:#e8e8e8;}
/*light grey*/
.bgcolor-4{background:#2f3238;color:#fff;}
/*Dark grey*/
.bgcolor-5{background:#df6659;color:#521e18;}
/*pink1*/
.bgcolor-6{background:#2fa8ec;}
/*sky blue*/
.bgcolor-7{background:#d0d6d6;}
/*White tea*/
.bgcolor-8{background:#3d4444;color:#fff;}
/*Dark grey2*/
.bgcolor-9{background:#ef3f52;color:#fff;}
/*pink2*/
.bgcolor-10{background:#64448f;color:#fff;}
/*Violet*/
.bgcolor-11{background:#3755ad;color:#fff;}
/*dark blue*/
.bgcolor-12{background:#3498DB;color:#fff;}
/*light blue*/
.bgcolor-20{background:#494A5F;color:#D5D6E2;}
/* Header */
.zzsc-header{padding:1em 190px 1em;letter-spacing:-1px;text-align:center;background:#66677c;}
.zzsc-header h1{color:#D5D6E2;font-weight:600;font-size:2em;line-height:1;margin-bottom:0;font-family:"Microsoft YaHei","宋体","Segoe UI","Lucida Grande",Helvetica,Arial,sans-serif,FreeSans,Arimo;}
.zzsc-header h1 span{font-family:"Microsoft YaHei","宋体","Segoe UI","Lucida Grande",Helvetica,Arial,sans-serif,FreeSans,Arimo;display:block;font-size:60%;font-weight:400;padding:0.8em 0 0.5em 0;color:#c3c8cd;}
/*nav*/
.zzsc-demo a{color:#fff;text-decoration:none;}
.zzsc-demo{width:100%;padding-bottom:1.2em;}
.zzsc-demo a{display:inline-block;margin:0.5em;padding:0.6em 1em;border:3px solid #fff;font-weight:700;}
.zzsc-demo a:hover{opacity:0.6;}
.zzsc-demo a.current{background:#1d7db1;color:#fff;}
/* Top Navigation Style */
.zzsc-links{position:relative;display:inline-block;white-space:nowrap;font-size:1.5em;text-align:center;}
.zzsc-links::after{position:absolute;top:0;left:50%;margin-left:-1px;width:2px;height:100%;background:#dbdbdb;content:'';-webkit-transform:rotate3d(0,0,1,22.5deg);transform:rotate3d(0,0,1,22.5deg);}
.zzsc-icon{display:inline-block;margin:0.5em;padding:0em 0;width:1.5em;text-decoration:none;}
.zzsc-icon span{display:none;}
.zzsc-icon:before{margin:0 5px;text-transform:none;font-weight:normal;font-style:normal;font-variant:normal;font-family:'icomoon';line-height:1;speak:none;-webkit-font-smoothing:antialiased;}
/* footer */
.zzsc-footer{width:100%;padding-top:10px;}
.zzsc-small{font-size:0.8em;}
.center{text-align:center;}
/****/
.related{color:#fff;background:#494A5F;text-align:center;font-size:1.25em;padding:0.5em 0;overflow:hidden;}
.related > a{vertical-align:top;width:calc(100% - 20px);max-width:340px;display:inline-block;text-align:center;margin:20px 10px;padding:25px;font-family:"Microsoft YaHei","宋体","Segoe UI","Lucida Grande",Helvetica,Arial,sans-serif,FreeSans,Arimo;}
.related a{display:inline-block;text-align:left;margin:20px auto;padding:10px 20px;opacity:0.8;-webkit-transition:opacity 0.3s;transition:opacity 0.3s;-webkit-backface-visibility:hidden;}
.related a:hover,.related a:active{opacity:1;}
.related a img{max-width:100%;opacity:0.8;border-radius:4px;}
.related a:hover img,.related a:active img{opacity:1;}
.related h3{font-family:"Microsoft YaHei",sans-serif;font-size:1.2em}
.related a h3{font-size:0.85em;font-weight:300;margin-top:0.15em;color:#fff;}
/* icomoon */
.icon-zzsc-home-outline:before{content:"\e5000";}
.icon-zzsc-arrow-forward-outline:before{content:"\e5001";}
@media screen and (max-width:1024px){.zzsc-header{padding:2em 10% 2em;}
.zzsc-header h1{font-size:1.4em;}
.zzsc-links{font-size:1.4em}
}
@media screen and (max-width:960px){.zzsc-header{padding:2em 10% 2em;}
.zzsc-header h1{font-size:1.2em;}
.zzsc-links{font-size:1.2em}
.related h3{font-size:1em;}
.related a h3{font-size:0.8em;}
}
@media screen and (max-width:766px){.zzsc-header h1{font-size:1.3em;}
.zzsc-links{font-size:1.3em}
}
@media screen and (max-width:640px){.zzsc-header{padding:2em 10% 2em;}
.zzsc-header h1{font-size:1em;}
.zzsc-links{font-size:1em}
.related h3{font-size:0.8em;}
.related a h3{font-size:0.6em;}
}
附件:下载该文件资源,减少时间成本(增值服务)
留言
该资源可下载
File Source
.rar
58.69 KB
Html JS 其它特效3
最新结算
jquery虚拟键盘中文打字效果js代码
类型: .rar 金额: CNY 2.31¥ 状态: 待结算 详细>
jquery虚拟键盘中文打字效果js代码
类型: .rar 金额: CNY 0.29¥ 状态: 待结算 详细>
HTML5实现CSS滤镜图片切换特效代码
类型: .rar 金额: CNY 2.31¥ 状态: 待结算 详细>
jQuery头像裁剪插件cropbox js代码
类型: .rar 金额: CNY 0.29¥ 状态: 待结算 详细>
jQuery头像裁剪插件cropbox js代码
类型: .rar 金额: CNY 2.31¥ 状态: 待结算 详细>
CSS3制作3D图片立方体旋转特效
类型: .rar 金额: CNY 2.31¥ 状态: 待结算 详细>
CSS3制作3D图片立方体旋转特效
类型: .rar 金额: CNY 0.29¥ 状态: 待结算 详细>
CSS3制作3D图片立方体旋转特效
类型: .rar 金额: CNY 2.31¥ 状态: 待结算 详细>
CSS3制作3D图片立方体旋转特效
类型: .rar 金额: CNY 0.29¥ 状态: 待结算 详细>
jQuery+css3实现信封效果
类型: .rar 金额: CNY 0.29¥ 状态: 待结算 详细>
我们力求给您提供有用的文章,再此基础上,会附加营收资源,不做任何广告,让平台可以更好发展 若您发现您的权利被侵害,或使用了您的版权,请发邮件联系 sunlifel@foxmail.com ggbig觉得 : 不提供源码的文章不是好文章
合作伙伴
联系我们
  • QQ:21499807
  • 邮箱:sunlifel@foxmail.com
  • QQ扫一扫加QQ
    QQ扫一扫
Copyright 2023-2024 ggbig.com·皖ICP备2023004211号-1
打赏文章