Changeset 3283852
- Timestamp:
- 04/29/2025 07:21:29 AM (11 months ago)
- Location:
- langly
- Files:
-
- 6 edited
-
tags/1.0/langly.js (modified) (2 diffs)
-
tags/1.0/langly.php (modified) (1 diff)
-
tags/1.0/style.css (modified) (1 diff)
-
trunk/langly.js (modified) (2 diffs)
-
trunk/langly.php (modified) (1 diff)
-
trunk/style.css (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
langly/tags/1.0/langly.js
r3281775 r3283852 31 31 const safeLanguage = sanitizeInput(language); 32 32 const selectedLanguageEl = document.getElementById("selected-language"); 33 33 34 34 35 if (selectedLanguageEl) { … … 37 38 langlyTranslate(langPair); 38 39 }; 40 41 42 function toggleDropdown() { 43 const menu = document.getElementById('customDropdownMenu'); 44 const arrow = document.getElementById('dropdown-arrow'); 45 menu.classList.toggle('show'); 46 arrow.style.transform = menu.classList.contains('show') ? 'rotate(-135deg)' : 'rotate(45deg)'; 47 } 48 49 document.addEventListener('click', function (e) { 50 const dropdown = document.getElementById('languageDropdown'); 51 const menu = document.getElementById('customDropdownMenu'); 52 const arrow = document.getElementById('dropdown-arrow'); 53 if (!dropdown.contains(e.target)) { 54 menu.classList.remove('show'); 55 arrow.style.transform = 'rotate(45deg)'; 56 } 57 }); 58 -
langly/tags/1.0/langly.php
r3281775 r3283852 333 333 334 334 <!-- Dropdown for language selection --> 335 <div class="dropdown show"> 336 <span class="dropdown-toggle language-header" id="languageDropdown" data-toggle="dropdown" aria-haspopup="true" 337 aria-expanded="false"> 335 <div class="custom-dropdown" id="languageDropdown"> 336 <span class="language-header" onclick="toggleDropdown()"> 338 337 <span id="selected-language">English</span> 339 <i id="dropdown-arrow" class=" fas fa-angle-down"></i>338 <i id="dropdown-arrow" class="arrow"></i> 340 339 </span> 341 <div class="dropdown-menu" aria-labelledby="languageDropdown">340 <div class="dropdown-menu" id="customDropdownMenu"> 342 341 <?php foreach ($selected_languages as $code): ?> 343 342 <?php if (isset($all_languages[$code])): ?> -
langly/tags/1.0/style.css
r3281775 r3283852 1 .custom-dropdown { 2 position: relative; 3 display: inline-block; 4 font-family: sans-serif; 5 } 6 7 .language-header { 8 background-color: #ffffff; 9 border: 1px solid #ccc; 10 padding: 8px 12px; 11 border-radius: 4px; 12 display: flex; 13 align-items: center; 14 justify-content: space-between; 15 cursor: pointer; 16 min-width: 120px; 17 } 18 1 19 .arrow { 2 20 margin-left: 5px; 3 21 border: solid #47565f; 4 22 border-width: 0 2px 2px 0; 5 padding: 2px;23 padding: 3px; 6 24 display: inline-block; 7 cursor: pointer;25 transform: rotate(45deg); 8 26 transition: transform 0.2s; 9 27 } 10 28 11 .dropdown{ 12 cursor: pointer; 29 .dropdown-menu { 30 position: absolute; 31 top: 100%; 32 left: 0; 33 background-color: #ffffff; 34 border: 1px solid #ccc; 35 border-radius: 4px; 36 display: none; 37 flex-direction: column; 38 min-width: 100%; 39 z-index: 1000; 40 margin-top: 2px; 41 box-shadow: 0 2px 8px rgba(0,0,0,0.1); 13 42 } 14 43 15 .dropdown-menu { 16 text-transform: uppercase; 17 margin-top: 0; 18 padding: 9px; 19 background-color: #EEEEEE; 20 padding: 0px; 21 cursor: pointer; 22 border: none; 23 min-width: 0%; 24 transition: max-height 0.3s ease-out, opacity 0.3s ease-out; 44 .dropdown-menu.show { 45 display: flex; 25 46 } 26 47 48 .dropdown-item { 49 padding: 8px 12px; 50 font-size: 14px; 51 color: #212529; 52 cursor: pointer; 53 text-transform: uppercase; 54 text-decoration: none; 55 } 27 56 28 .dropdown-item { 29 width: 100%; 30 padding: 2px 19px 2px 10px; 31 font-size: 14px; 32 cursor: pointer; 33 font-weight: 400; 34 color: #212529; 35 border: none; 57 .dropdown-item:hover { 58 background-color: #dcdcdc; 36 59 } 37 60 -
langly/trunk/langly.js
r3281775 r3283852 31 31 const safeLanguage = sanitizeInput(language); 32 32 const selectedLanguageEl = document.getElementById("selected-language"); 33 33 34 34 35 if (selectedLanguageEl) { … … 37 38 langlyTranslate(langPair); 38 39 }; 40 41 42 function toggleDropdown() { 43 const menu = document.getElementById('customDropdownMenu'); 44 const arrow = document.getElementById('dropdown-arrow'); 45 menu.classList.toggle('show'); 46 arrow.style.transform = menu.classList.contains('show') ? 'rotate(-135deg)' : 'rotate(45deg)'; 47 } 48 49 document.addEventListener('click', function (e) { 50 const dropdown = document.getElementById('languageDropdown'); 51 const menu = document.getElementById('customDropdownMenu'); 52 const arrow = document.getElementById('dropdown-arrow'); 53 if (!dropdown.contains(e.target)) { 54 menu.classList.remove('show'); 55 arrow.style.transform = 'rotate(45deg)'; 56 } 57 }); 58 -
langly/trunk/langly.php
r3281775 r3283852 333 333 334 334 <!-- Dropdown for language selection --> 335 <div class="dropdown show"> 336 <span class="dropdown-toggle language-header" id="languageDropdown" data-toggle="dropdown" aria-haspopup="true" 337 aria-expanded="false"> 335 <div class="custom-dropdown" id="languageDropdown"> 336 <span class="language-header" onclick="toggleDropdown()"> 338 337 <span id="selected-language">English</span> 339 <i id="dropdown-arrow" class=" fas fa-angle-down"></i>338 <i id="dropdown-arrow" class="arrow"></i> 340 339 </span> 341 <div class="dropdown-menu" aria-labelledby="languageDropdown">340 <div class="dropdown-menu" id="customDropdownMenu"> 342 341 <?php foreach ($selected_languages as $code): ?> 343 342 <?php if (isset($all_languages[$code])): ?> -
langly/trunk/style.css
r3281775 r3283852 1 .custom-dropdown { 2 position: relative; 3 display: inline-block; 4 font-family: sans-serif; 5 } 6 7 .language-header { 8 background-color: #ffffff; 9 border: 1px solid #ccc; 10 padding: 8px 12px; 11 border-radius: 4px; 12 display: flex; 13 align-items: center; 14 justify-content: space-between; 15 cursor: pointer; 16 min-width: 120px; 17 } 18 1 19 .arrow { 2 20 margin-left: 5px; 3 21 border: solid #47565f; 4 22 border-width: 0 2px 2px 0; 5 padding: 2px;23 padding: 3px; 6 24 display: inline-block; 7 cursor: pointer;25 transform: rotate(45deg); 8 26 transition: transform 0.2s; 9 27 } 10 28 11 .dropdown{ 12 cursor: pointer; 29 .dropdown-menu { 30 position: absolute; 31 top: 100%; 32 left: 0; 33 background-color: #ffffff; 34 border: 1px solid #ccc; 35 border-radius: 4px; 36 display: none; 37 flex-direction: column; 38 min-width: 100%; 39 z-index: 1000; 40 margin-top: 2px; 41 box-shadow: 0 2px 8px rgba(0,0,0,0.1); 13 42 } 14 43 15 .dropdown-menu { 16 text-transform: uppercase; 17 margin-top: 0; 18 padding: 9px; 19 background-color: #EEEEEE; 20 padding: 0px; 21 cursor: pointer; 22 border: none; 23 min-width: 0%; 24 transition: max-height 0.3s ease-out, opacity 0.3s ease-out; 44 .dropdown-menu.show { 45 display: flex; 25 46 } 26 47 48 .dropdown-item { 49 padding: 8px 12px; 50 font-size: 14px; 51 color: #212529; 52 cursor: pointer; 53 text-transform: uppercase; 54 text-decoration: none; 55 } 27 56 28 .dropdown-item { 29 width: 100%; 30 padding: 2px 19px 2px 10px; 31 font-size: 14px; 32 cursor: pointer; 33 font-weight: 400; 34 color: #212529; 35 border: none; 57 .dropdown-item:hover { 58 background-color: #dcdcdc; 36 59 } 37 60
Note: See TracChangeset
for help on using the changeset viewer.