Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как сделать смену цвета текста по скрипту? (https://javascript.ru/forum/misc/66887-kak-sdelat-smenu-cveta-teksta-po-skriptu.html)

Nisxan 16.01.2017 12:01

Как сделать смену цвета текста по скрипту?
 
Здравствуйте, есть фиксированное меню, и сайт состоящий из секций , нужно при переходе по секциям сделать смену цвета текста меню.

https://jsfiddle.net/NisXan/s3mo11x1/2/

Пробовал так но не работает скрипт, вообще не меняется стиль.
if (window.location.pathname == '/#1' || window.location.pathname == '/#3' || window.location.pathname == '/#5'|| window.location.pathname == ''|| window.location.pathname == '/'|| window.location.pathname == '/index.php')
{
    $(".sp-module ul >li >a").css("color", "#000")
}
else {
    $(".sp-module ul >li >a").css("color", "#fff")
}


Секции по фону чередуются, поэтому на #1, #3 и #5 цвет текста меню должен быть белым, а на #2, #4 и #6 соответственно черный

ksa 16.01.2017 13:58

Nisxan, ты в состоянии сделать минимальный тестовый пример и выложить его тут?

Nisxan 16.01.2017 15:37

в теме же ссылка
https://jsfiddle.net/NisXan/s3mo11x1/2/

ksa 16.01.2017 15:50

Цитата:

Сообщение от Nisxan
нужно при переходе по секциям сделать смену цвета текста меню

Что есть "переход по секциям"?

Dilettante_Pro 16.01.2017 16:04

Nisxan,
1. а где библиотека jQuery?
2. по какому поводу сработает ваш скрипт?

Dilettante_Pro 16.01.2017 16:09

ksa,
Цитата:

Сообщение от ksa
Что есть "переход по секциям"?

Например,
<a href="#section1">Главная</a>
Это как раз работает

ksa 16.01.2017 16:14

Т.е. клацанье по ссылкам и загрузка с хешем...

Как вариант.

<!DOCTYPE html>
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=windows-1251' />
<script src='http://code.jquery.com/jquery-latest.js'></script>
<!--
<script src="https://code.angularjs.org/1.3.9/angular.min.js"></script>
<script src="https://code.angularjs.org/1.3.9/angular-route.js"></script>
-->
<style type='text/css'>
#right-menu {
  position: absolute;
  float: right;
  margin-left: 15px;
  width: 100%;
}
.sp-module {
  right: 20px;
  float: right;
  position: fixed;
  top: 35%;
}
.sp-module ul {
  list-style: none;
  padding: 0;
  margin: 0;
}
.sp-module ul >li {
  display: block;
  -webkit-transition: 300ms;
  transition: 300ms;
}
.sp-module ul >li >a {
  color: #fff;
  display: block;
  -webkit-transition: 300ms;
  transition: 300ms;
  font-weight: bold;
}
section {
  z-index: 1;
  height: 100vh;
  width: 100%;
  height: 100vh;
  bottom: 0;
}
.sppb-section {
  padding-top: 25%;
}
.sppb-section p {
  width: 80%;
  margin-left: 15px;
}
#section1,
#section3,
#section5 {
  background-color: #000;
  color: #fff;
}
#section2,
#section4,
#section6 {
  background-color: #fff;
}
.sp-module ul >li >a.on {
	color: green;
}
</style>
<script type='text/javascript'>
$(function(){
	var hash=window.location.hash
	$(".sp-module a[href='"+hash+"']").addClass('on');
	$(".sp-module a").click(function(){
		$('.sp-module a.on').removeClass('on');
		$(this).addClass('on');
	});
});
</script>
</script>
</head>
<body>
<div id="right-menu">
  <div class="sp-module">
    <ul class="sp-module" data-uk-scrollspy-nav="{closest: 'li', smoothscroll:{offset: 0}}">
      <li><a href="#section1">Главная</a></li>
      <li><a href="#section2">Услуги</a></li>
      <li><a href="#section3">Работы</a></li>
      <li><a href="#section4">Цены</a></li>
      <li><a href="#section5">Блог</a></li>
      <li><a href="#section6">Контакты</a></li>
    </ul>
  </div>
</div>
<div class="page-content">
  <section id="section1" class="sppb-section">
    <p>
      Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium placeat nulla ad eum ex aliquam, ipsa facilis consequatur hic aspernatur quae dolor molestias nobis commodi corrupti, eaque unde, rerum velit.
    </p>
  </section>
  <section id="section2" class="sppb-section">
    <p>
      Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium placeat nulla ad eum ex aliquam, ipsa facilis consequatur hic aspernatur quae dolor molestias nobis commodi corrupti, eaque unde, rerum velit.
    </p>
  </section>
  <section id="section3" class="sppb-section">
    <p>
      Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium placeat nulla ad eum ex aliquam, ipsa facilis consequatur hic aspernatur quae dolor molestias nobis commodi corrupti, eaque unde, rerum velit.
    </p>
  </section>
  <section id="section4" class="sppb-section">
    <p>
      Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium placeat nulla ad eum ex aliquam, ipsa facilis consequatur hic aspernatur quae dolor molestias nobis commodi corrupti, eaque unde, rerum velit.
    </p>
  </section>
  <section id="section5" class="sppb-section">
    <p>
      Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium placeat nulla ad eum ex aliquam, ipsa facilis consequatur hic aspernatur quae dolor molestias nobis commodi corrupti, eaque unde, rerum velit.
    </p>
  </section>
  <section id="section6" class="sppb-section">
    <p>
      Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium placeat nulla ad eum ex aliquam, ipsa facilis consequatur hic aspernatur quae dolor molestias nobis commodi corrupti, eaque unde, rerum velit.
    </p>
  </section>
  <div>
</body>
</html>

ksa 16.01.2017 16:15

P.S.
CSS у автора конечно капец! :blink:

Dilettante_Pro 16.01.2017 16:23

ksa,
И переключать, мне кажется, нужно все пункты списка. А то на белом фоне они исчезают. Текущий, может, и стоит делать зеленым (или каким хочется), а остальные - цветом, противоположным фону.

ksa 16.01.2017 16:46

Цитата:

Сообщение от Dilettante_Pro
И переключать, мне кажется, нужно все пункты списка. А то на белом фоне они исчезают.

Это уже пусть ТС думает как ему все это оформлять... :yes:


Часовой пояс GMT +3, время: 16:41.