2013-11-13 4 views
1

Позвольте мне объяснить. Я не ищу конкретный атрибут конкретного элемента DOM. Я начал думать, что если я проверил background-color элемента , я бы нашел цвет фона страницы.Как получить цвет фона сайта?

Но, например, для этого сайта: performance bikes цвета фона тела черного, и это «очевидно», что основной цвет фона сайта белого.

Итак, я разобрал сайт с PhantomJS. Как вы думаете, что было бы хорошей стратегией, чтобы найти самый «видимый» фоновый цвет. Я не знаю, как это сказать, но для человека это очевидно, какой цвет является фоном. Как найти его программно?

РЕДАКТИРОВКА: место для велосипедов является всего лишь примером. Я думаю о том, как я сделаю это для «любой» страницы.

+0

Нет, где на этом сайте это говорят фон черный, кроме основного nav. Основной фон отсутствует, поэтому по умолчанию он имеет белый фон. На теге 'body'' color' действительно черный, но это текст. –

+1

Обычно фоны являются контейнерами других элементов, подход будет нахождением самого большого контейнера и использует его цвет, но ваша проблема не проста вообще. –

+0

В чем проблема, которую вы пытаетесь решить? Почему вы хотите сделать это программно? – Pointy

ответ

0

Цвет фона рабочего места для велосипедистов istransparent. Однако из-за какой-то странной причины они решили сделать все основное div позицией absolute, поэтому тег body равен 1px и, таким образом, показывает белый цвет по умолчанию. Одна из моих идей заключается в том, что вы можете проверить, является ли высота body меньше, чем процентная доля окна. Если он слишком мал, то это, вероятно, white, или transparent для некоторых специальных браузеров.

Альтернативы, включая taking a screenshot страницы и определяют цвет фона.

+0

Где вы видите, что он говорит, что он черный? Этот цвет: # 333333; 'для цвета текста, а на' body id = "xyz' и' # mainPage' не имеют на нем 'background' /' background-color'. –

+0

@JoshPowell - Упс неправильно прочитал. –

+0

Нет проблем, похоже, что все есть.:] –

0

Вы можете использовать javascript и проверить, какой из слоев находится сверху, а также ширина и высота этого div, а затем просто захватить его свойство background-color.

-1

Другим приятным решением является использование подключаемых модулей браузера. Я использую Eye Dropper для хрома.

https://chrome.google.com/webstore/detail/eye-dropper/hmdcmlfkchdmnmnmheododdhjedfccka?hl=en

Или вы можете использовать Colorpicker для Firefox. Чтобы получить его, в вашем браузере Firefox, Гото:

Инструменты -> Дополнения -> верхняя панель взгляд вправо поиск «Colorpicker»

Это в 10 раз быстрее, чтобы найти цвет фона на сайте таким образом, чем поиск кода CSS.

+0

Мне нужно сделать это программно ... –

+0

Это ужасный ответ ... как трудно просто щелкнуть правой кнопкой мыши, «проверить элемент» и просмотреть CSS?lol –

+0

@HommerSmith Если вам нужна сложная функция для поиска цветов внутри изображения и элементов DOM, вам необходимо провести много исследований или найти функцию, которую кто-то сделал. –

0

Как насчет этого?

Не идеальный, но должен вернуть вам элемент с наибольшей площадью и убедиться, что он виден. Не учитывать это быть ниже других элементов, но это начало ...

var element={ 
    width:0, 
    height:0, 
    color:'', 
    jQEl:{} 
} 

$('*:visible').each(function(){ 
    var $this = $(this); 
    var area = element.width*element.height; 
    var thisArea = $this.width()*$this.height(); 
    if(thisArea>area){ 
     element.width = $this.width(); 
     element.height= $this.height(); 
     element.color=$this.css('background-color'); 
     element.jQEl=$this; 
    } 
}); 

console.log(element) 
0

Я бы сделать снимок, а затем сделать гистограмму изображения, чтобы найти наиболее распространенный цвет.

Уточнения:

  • сначала пройти и заменить все текстовое содержание с "& NBSP;"
  • Дайте дополнительный вес пикселям, ближайшим к краю экрана.

(Чтобы автоматизировать полностью в PhantomJS, вы можете быть в состоянии использовать что-то вроде http://html2canvas.hertzen.com/ использовать холст, и не нужно, чтобы сделать внешний файл изображения.)

Смежные вопросы